我已经获得了日期,但它是静态的我希望每秒获得实际日期。我该怎么办?
Date fecha=new java.util.Date();
textField = new JTextField(fecha.toLocaleString());
textField.setFont(new Font("Verdana", Font.BOLD, 15));
textField.setHorizontalAlignment(SwingConstants.CENTER);
textField.setBackground(UIManager.getColor("Button.background"));
textField.setBounds(362, 665, 300, 50);
frame.getContentPane().add(textField);
textField.setColumns(10);
答案 0 :(得分:2)
javax.swing.Timer
- 以指定的时间间隔触发一个或多个ActionEvents
int delay = 1000; //milliseconds
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
//...Perform a task...
}
};
new Timer(delay, taskPerformer).start();
修改:
如果你的代码中需要两个定时器,则不要导入两个.import一个timer.and for其他定时器使用explicit.import only util.timer an for swing timer use new javax.swing.Timer(delay, taskPerformer).start()
答案 1 :(得分:1)
您可以使用javax.swing.Timer.执行此操作,如其他答案中所述。以下是使用java.lang.Thread的另一种解决方案:
new Thread (new Runnable(){
public void run(){
Thread.sleep(1000);
SwingUtilities.invokelater(new Runnable(){
public void run(){
updateTextField();
}
});
}
}).start();
使用:
public void updateTextField(){
Date fecha = new java.util.Date();
textField.setText(fecha.toLocaleString());
}
答案 2 :(得分:0)