簡體   English   中英

使用JLabel在面板中顯示計時器

[英]Displaying a timer in a panel using JLabel

因此,我正在與同班同學一起編寫程序,我們在GUI方面沒有太多經驗,但是我想做的是在側面板上顯示用戶完成拼圖所需的時間的計時器(這是一個主要游戲區域以及旁邊帶有按鈕等的側面板),但我不確定如何使JLabel隨用戶解決難題所需的時間不斷更新。 我不知道如何使用計時器對象來執行此操作,因此我現在嘗試僅使用System.nanoTime()

1)如果我使用計時器對象,該在Action偵聽器參數中使用什么? 這將調用timerLabel.updateUI(); 每次(假設我已經有actionPerformed方法,其中已經包含那行代碼)? 使用計時器對象時,創建它時需要在Jlabel參數中放入什么?

2)如果不使用計時器對象,什么是不斷更新時間的最佳方法?

//Timer timer = new Timer(1000, new ActionListener(??));
//timer.start();
long start = System.nanoTime();
String time = new java.text.SimpleDateFormat("ms").format(new java.util.Date(start/1000000));
timerlabel = new JLabel(time);
sideMenu.add(timerlabel);
timerlabel.updateUI();

您似乎不了解如何使用ActionListener ActionListener不帶任何參數,因為它是一個接口。 相反,您重寫其actionPerformed方法。 您可能正在尋找的是:

Timer timer = new Timer(1000, new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent ev) {
        // Whatever action you want to happen every 1000 milliseconds
        timerLabel.setText(new java.text.SimpleDateFormat("ms")
            .format(new java.util.Date(System.nanoTime()/1000000)));
    }
});
timer.start();

請參閱這里了解更多詳情或在這里的一個很好的例子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM