2017-10-05 1 views
1

안녕하세요 저는 자바 프로그래밍의 새로운 기능입니다. 내 프로그램을 위해 타이머 나 루프를 사용하면 큰 문제가 있습니다. 변수를 표시하고 프로그램을 업데이트하면 프로그램이 중단되고 멈추지 않을뿐입니다. 내 프로그램의 모든 것 내 게임은 쉬운 게임이다. 우리는 ... 돈을 가지고 있어야하고 매 x 초마다 돈을 보여주고 싶다.매 1 초마다 변수를 업데이트하십시오.

 static int money = 0; 
     static int energy = 100; 
     static String energyinfo = Integer.toString(energy); 
     static String moneyinfo = Integer.toString(money); 

     private void setmoneyenergy() 
     { 
      energyinfo = Integer.toString(energy); 
      moneyinfo = Integer.toString(money); 
      jenergy.setText(energyinfo); 
      jmoney.setText(moneyinfo); 
     } 

동안 버튼에 다른 스레드를 수행 할

while(true) 
    { 
     setpoolenergy(); 
    } 
+0

[EDT] (https://docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html)를 차단하지 마십시오. –

답변

-1

시도를 해, actionPerformed : 매초마다 내 프로그램을 중지뿐만 아니라 코드 나에게 중요하지 않습니다, 여기에 내 돈 코드 .

// in action performed 
new Runnable() { 

    @Override 
    public void run() { 
     //CODE 
    } 
.run(); 

봅니다 java.util의 에서 타이머TimerTask를를 사용합니다.

private Timer timer = new Timer(); 

public void actionPerformed (Action a) { 
    timer.cancel(); 
    timer.schedule(new TimerTask() { 

     @Override 
     public void run() { 
      //UPDATE data 
     } 
    }, 1000); 
// 1000 ms = 1 second 
} 
+0

답변에 컴파일되지 않은 코드가 포함되어 있으며 컴파일 된 경우에도 잘못되었습니다. 어서. – Kayaman

+0

그것 runed과 그 ok 그러나 그것은 루프가 작동하지 않는다! 덕분에 – Mohammad134

+0

! 내 게임은 지금 멈추지 않고 200ms마다 업데이트됩니다! – Mohammad134

관련 문제