我創建了一個遊戲,並在我的swing界面中添加了一個計時器。我現在這樣做的方式是有一個當前時間的場,用System.currentTimeMillis()
得到它,當遊戲開始時,它獲得它的價值。在我的遊戲方法中,我把System.currentTimeMillis()
- 場;它會告訴你遊戲開始後的當前時間。如何在JLabel上更新自己的計時器
不過,如何讓它每秒更新一次呢,所以JLabel
會有:timePassed:0s,timePassed:1s等等。請記住,我不會在任何時候在我的遊戲中使用線程。
編輯:謝謝大家的親切建議。我用了你的答案的組合,請給我一些反饋。
我把jlabel作爲一個叫做time的字段。 (否則我不能處理它)。
time = new JLabel("Time Passed: " + timePassed() + " sec");
panel_4.add(time);
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
time.setText("Time Passed: " + timePassed() + " sec");
}
};
Timer timer = new Timer(1000, actionListener);
timer.start();
答案在問題中。如果您使用Swing,請查看http://download.oracle.com/javase/6/docs/api/javax/swing/Timer.html – 2011-05-29 15:16:40
,然後確實使用線程。你不可能在美國東部時間做任何事情! – jfpoilpret 2011-05-29 15:39:00
錯誤。是的,我可以:P我的GUI是用於從一個顯示導航到另一個,即主菜單到播放屏幕到選項屏幕等。雖然2或3窗口可以保持打開在任何給定的時間,我永遠不會有一個用於窗口重複。那麼問題是什麼? – Martinos 2011-05-29 18:15:48