2017-10-05 4 views
1

Hallo ich bin neu in Java-Programmierung Ich habe ein großes Problem, wenn ich Timer oder While-Schleife für mein Programm verwenden, um meine Variable zu zeigen und aktualisieren mein Programm wird gestoppt, nicht aufgehört zu arbeiten nur nichts, was ich nicht tun kann alles in meinem programm mein spiel ist ein einfaches spiel, das wir sollten geld von ... ways und ich will mein geld zeigen jede x Sekunde. jede Sekunde ist nicht wichtig für mich nur einen Code, der nicht mein Programm zu stoppen, hier ist mein Geld Code:Update-Variable alle 1 Sekunde

 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); 
     } 

während in einem Knopf ActionPerformed

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

Blockieren Sie nicht auf dem [EDT] (https://docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html). –

Antwort

-1

Versuchen Sie es auf einem anderen Thread ausführen .

// in action performed 
new Runnable() { 

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

Try Timer und Timertask von java.util zu verwenden.

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

Ihre Antwort enthält Code, der nicht kompiliert und falsch ist, selbst wenn es kompiliert wurde. Komm schon. – Kayaman

+0

es runed und es ist in Ordnung, aber es funktioniert die Schleife nicht! – Mohammad134

+0

danke! Mein Spiel ist jetzt nicht zu stoppen und es wird alle 200ms aktualisiert! – Mohammad134

Verwandte Themen