0

我有一个面板,其中有一个不可编辑的文本字段。我希望能够textField.setText(timer);在面板中添加某种东西。我基本上只是希望 JTextArea 像这样显示它:0:0:0。

我尝试过制作计时器、TimerTasks、ActionListeners 和排序。我无法掌握这个窍门。也许是因为我在哪里添加了计时器?目前我尝试将其添加到public void guiComponents() throws Exception{...}. 此方法保存面板、它所在的框架和其他组件的所有属性。

也许我没有低估计时器的整个概念。最初,我尝试使用双重嵌套的 for 循环来完成此任务,但因为这必须在程序的其余部分运行时继续,所以我不能这样做。

4

1 回答 1

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();
    }
}
于 2013-04-17T04:30:43.210 回答