我的时钟没有显示第二次增加

时间:2013-02-19 16:23:38

标签: java swing time

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

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生成的。

2 个答案:

答案 0 :(得分:7)

您的计时器不会重复。

timer.setRepeats(true);

将其设置为重复。

实际上你根本不需要它,默认设置为true。

答案 1 :(得分: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();
    }
}