今天刚好需要弄一个时间更新相关的程序,顺便记录一下,新手请多指教。
以下是代码
package test;
import java.awt.Dimension;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class New extends JFrame
{
private JPanel timePanel;
private JLabel timeLabel;
private JLabel displayArea;
private String time;
private int ONE_SECOND = 1000; // 更新时间周期(1s)
public static void main(String arg[])
{
New timeFrame=new New();
timeFrame.setVisible(true);
}
public New()
{
timePanel = new JPanel();
timeLabel = new JLabel("当前时间: ");
displayArea = new JLabel();
configTimeArea(); // 调用更新时间函数
timePanel.add(timeLabel); // 添加说明标签
timePanel.add(displayArea); //添加时间
this.add(timePanel);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(new Dimension(200,70));
this.setLocationRelativeTo(null);
}
private void configTimeArea() {
Timer tmr = new Timer();
tmr.scheduleAtFixedRate(new JLabelTimerTask(),new Date(), ONE_SECOND);
}
protected class JLabelTimerTask extends TimerTask{
// 时间格式化
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public void run() {
// 使用Calendar方法获得时间
time = dateFormatter.format(Calendar.getInstance().getTime());
displayArea.setText(time);
}
}
}
运行结果