2017-10-05 119 views
1

嗨,我是新的Java編程我有一個很大的問題,當我使用計時器或while循環爲我的程序顯示我的變量和更新它我的程序將停止,不停止工作只是沒有我不能做我的遊戲中的任何東西都是一款簡單的遊戲,我們應該從...方面獲得收入,並且我希望每隔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); 
     } 

,而在一個按鈕的actionPerformed

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

不要在[EDT]方框(https://docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html)。 –

回答

-1

試圖在另一個線程中執行它。

// in action performed 
new Runnable() { 

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

嘗試使用定時器TimerTask的java.util中

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

它毀了,它確定,但它的循環不工作! – Mohammad134

+0

謝謝!我的遊戲現在不停,它會每200ms更新一次,謝謝! – Mohammad134