我正嘗試使用線程創建數字時鐘,因爲在我看來,這是一種合乎邏輯的方式。 我不知道我是否正確地做了這件事,但是我的想法是使用JFrame構造函數創建初始當前系統時間,並使用標籤將其顯示爲文本。然後在構造函數中創建用於更新時間的線程對象。使用線程創建數字時鐘
掙扎了一下,希望得到一些關於如何正確使用它的建議。
setDefaultCloseOperation((JFrame.EXIT_ON_CLOSE));
setBounds(50, 50, 200, 200);
JPanel pane = new JPanel();
label = new JLabel();
//Font localTime = new Font("Lumina", Font.BOLD , 24);
pane.add(label);
add(pane);
sdf = new SimpleDateFormat("HH:mm:ss");
date = new Date();
s = sdf.format(date);
label.setText(s);
setVisible(true);
runner = new Thread(this);
while(runner == null)
{
runner = new Thread(this);
runner.start();
}
這是我的run()方法每秒鐘更新時鐘。
public void run()
{
while(true)
{
try
{
Thread.sleep(1000);
sdf = new SimpleDateFormat("HH:mm:ss");
date = new Date();
s = sdf.format(date);
label.setText(s);
}
catch(Exception e){}
}
主要方法。
public static void main(String[] args)
{
new DigitalClock().setVisible(true);
}
你有什麼特別的掙扎?它看起來像runner永遠不會是空的,因爲你實例化並且在你的while(runner == null)檢查之前爲它分配一個Thread對象。哦,+1純粹是因爲看到一個實際上已經嘗試過的作業問題的罕見之處,然後再問這裏:) –