2016-09-30 4 views
1

애플릿이있는 페이지를 열 때마다 변수 값이 변경되는 이유는 무엇입니까?예기치 않게 애플릿의 값이 변경됩니다.

나는 페인트 메소드를 오버라이드 (override) :

private int osY=14; 

@Override 
public void paint(Graphics g) 
{ 

    Graphics2D g2 = (Graphics2D) g; 

    g.drawLine(50,100,50,360); 
    for(int j=100;j<=360; j=j+20) 
    { 
     g2.setStroke(new BasicStroke(2)); 
     g2.drawLine(50,j,60,j); 
     g2.drawString(String.valueOf(osY), 5, j+3); 
     g2.setStroke (new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[]{1}, 0)); 
     if(j<360) g2.drawLine(60,j,410,j); 
     osY--; 
    } 
} 

내가 (.., 14,13,12) 14에서 0으로하지만 그 대신 14에서 아래쪽으로가는 모든 수직 해치 마크 레이블을 추가 할을 -14 (-14, -15, ..)가됩니다.

저에게 더 중요한 두 번째 문제는이 웹 사이트를 열 때마다이 값이 예기치 않게 변경되는 것과 같습니다. 그래서 처음 애플릿을 열면 -14가되고 ..- 27 그러나 다음 번에 점점 작아집니다 (-28, ..- 41).

왜?

답변

0

문제는 변수의 범위와 관련이 있습니다. 너는 이것 키워드.

g2.drawString(String.valueOf(this.osY), 5, j+3); 

this.osY--; 
+0

불행히도 아무 것도 변경되지 않았습니다. – Jawegiel