1

为什么我的时钟没有显示秒数增加?

public class timeTest extends javax.swing.JFrame {

    public timeTest() {
        initComponents();
        showTime();
    }

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new timeTest().setVisible(true);
            }
        });
    }

    private javax.swing.JLabel timeLable;

    private void showTime() {
        Timer timer = new Timer(100, new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                Calendar time = Calendar.getInstance();
                timeLable.setText(time.getTime().toString());
            }
        });
        timer.setRepeats(false);
        timer.start();
    }
}

我还没有编写代码,它是由 IDE 生成的。

4

2 回答 2

7

您的计时器不会重复。

timer.setRepeats(true);

将其设置为重复。

实际上你甚至不需要这个,它默认设置为true。

于 2013-02-19T16:27:19.777 回答
2

代替

timer.setRepeats(false);

timer.setRepeats(true);

我只是为漂亮的外观添加了一个日期格式化程序

public class timeTest extends javax.swing.JFrame {

  SimpleDateFormat date_format = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss");

    public timeTest() {
        initComponents();
        showTime();
    }

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new timeTest().setVisible(true);
            }
        });
    }

    private javax.swing.JLabel timeLable;

    private void showTime() {
        Timer timer = new Timer(100, new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                Calendar time = Calendar.getInstance();
                timeLable.setText(date_format.format(time.getTime()));
            }
        });
        timer.setRepeats(true);
        timer.start();
    }
}
于 2013-02-19T16:40:43.213 回答