我試圖創建一個顯示當前時間的Java GUI。目前,我可以使其顯示當前時間,但僅在啓動時顯示。然後它永遠保持在那個時間。原因是我無法弄清楚如何使它每秒自動加載新的當前時間。這裏是我的相關代碼迄今:Java - 如何每秒更新面板
// Getting the current time...
long epoch = System.currentTimeMillis()/1000;
String date = new java.text.SimpleDateFormat("HH:mm:ss").format(new java.util.Date(epoch * 1000));
// Creating the panel...
JLabel lblThetime = new JLabel(date);
sl_panel.putConstraint(SpringLayout.NORTH, lblThetime, 55, SpringLayout.SOUTH, lblIBeA);
sl_panel.putConstraint(SpringLayout.WEST, lblThetime, 139, SpringLayout.WEST, panel);
lblThetime.setFont(new Font("Avenir Next", Font.PLAIN, 40));
// Adding the time to the panel
panel.add(lblThetime);
// My refresher which doesn't work
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
removeAll();
validate();
repaint();
}
}, 1000, 1000);
我試圖從this thread使複習使用的信息,但無濟於事,窗口(運行時)僅僅是空白。然後我試圖使利用this thread信息不同的進修,並創造了這個:
// My refresher which doesn't work
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
contentPane.remove(lblThetime);
contentPane.add(lblThetime);
}
}, 1000, 1000);
隨着contentPane
已被定義爲private JPanel contentPane;
其中也沒有工作,但是隻有時間本身是空的,窗口中剩餘的內容(另一個JLabel(只是一些文本))保持正常。
沒有任何複習它的行爲如上所述,它只是顯示它開始的時間,並永遠在那個時間。
我使用Eclipse與WindowBuilder。 (而且我(可能很明顯)是Java GUI xD的完整noob)
Hi there Kili Liam。歡迎來到SO並感謝參與,但這不是如何運作的......在這裏,你不應該用謎語和其他問題來回答問題,當然也不是用「RTFM」風格給出「線索」。在這裏你回答問題......答案!你也不應該以「希望它幫助」縮寫爲「HIH」,也不應該縮寫爲你的名字來結束你的答案。如果你不知道或不想給出正確的答案,那麼你根本就不會發布。如果你想評論(而不是回答),你可以使用評論(一旦你獲得了一些代表)。 – TacticalCoder