2013-04-17 36 views
0

我有一個面板,我有一個不可編輯的Textfield。我希望能夠在面板中添加一個textField.setText(timer);類型的東西。我基本上只是想讓JTextArea像這樣顯示它:0:0:0。Java定時器和文本字段

我試過做定時器,TimerTasks,ActionListeners和排序。我無法理解這一點。也許是因爲我在哪裏添加計時器?目前我嘗試將其添加到public void guiComponents() throws Exception{...}。此方法包含面板的所有屬性,它所在的框架以及其他組件。

也許我並沒有低估定時器的整體概念。 Origanlly我嘗試使用一個雙嵌套for循環來實現這個任務,但是因爲這必須繼續執行,而其他程序正在運行,所以我無法做到這一點。

回答

3

不要爲此使用JTextField。使用JLabel顯示文本。例如:

import java.awt.*; 
import java.awt.event.*; 
import java.util.*; 
import javax.swing.*; 

public class TimerTime extends JFrame implements ActionListener 
{ 
    JLabel timeLabel; 

    public TimerTime() 
    { 
     timeLabel = new JLabel(new Date().toString()); 
     getContentPane().add(timeLabel, BorderLayout.NORTH); 
    } 

    public void actionPerformed(ActionEvent e) 
    { 
     timeLabel.setText(new Date().toString()); 
    } 

    public static void main(String[] args) 
    { 
     TimerTime frame = new TimerTime(); 
     frame.setDefaultCloseOperation(EXIT_ON_CLOSE); 
     frame.pack(); 
     frame.setVisible(true); 

     int time = 1000; 
     javax.swing.Timer timer = new javax.swing.Timer(time, frame); 
     timer.setInitialDelay(1); 
     timer.start(); 
    } 
} 
+0

我不知道'Date'的作用。但我不想要實時。更像是在應用開始運行後向上計數,並且它會繼續增加直到結束。 – SelfDeceit

+1

@SelfDeceit這個概念是一樣的。在'actionPerformed'方法中,您需要增加計數器並格式化輸出。我相信你的能力至少有這麼多 – MadProgrammer