请问如何在swing中加入显示系统时间的部分 
麻烦大家看看,谢谢了

解决方案 »

  1.   

    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.*;
    import javax.swing.*;public class Calendar extends JFrame implements ActionListener, Runnable {
    private JLabel label; private JButton bt; private JTextArea year; private JTextArea month; private JTextArea day; private JTextArea hour; private JTextArea min; private JPanel panel;

    String time;
    int seconds=0;
    Date date=new Date();
    public Calendar() {
    super();
    panel = new JPanel();
    SimpleDateFormat myFmt = new SimpleDateFormat("M/dd/yyyy hh:mm:ss a");
    Date now = new Date();
    seconds=now.getSeconds();
    time = myFmt.format(now);
    label = new JLabel(time);
    panel.add(label);
    year = new JTextArea();
    year.setColumns(5);
    month = new JTextArea();
    month.setColumns(5);
    day = new JTextArea();
    day.setColumns(5);
    hour = new JTextArea();
    hour.setColumns(5);
    min = new JTextArea();
    min.setColumns(5);
    panel.add(new JLabel("year"));
    panel.add(year);
    panel.add(new JLabel("month"));
    panel.add(month);
    panel.add(new JLabel("date"));
    panel.add(day);
    panel.add(new JLabel("hour"));
    panel.add(hour);
    panel.add(new JLabel("minute"));
    panel.add(min);
    bt = new JButton("change time");
    bt.addActionListener(this);
    panel.add(bt);
    add(panel);
    this.setTitle("Watch");
    this.setPreferredSize(new Dimension(125, 199));
    } public void actionPerformed(ActionEvent action) {
    SimpleDateFormat myFmt = new SimpleDateFormat("M/dd/yyyy hh:mm:ss a");
    Date curDate = new Date();
    curDate.setYear(Integer.parseInt(year.getText()) - 1900);
    curDate.setMonth(Integer.parseInt(month.getText()));
    curDate.setDate(Integer.parseInt(day.getText()));
    curDate.setHours(Integer.parseInt(hour.getText()));
    curDate.setMinutes(Integer.parseInt(min.getText()));
    date=curDate;
    label.setText(myFmt.format(curDate));
    this.repaint();
    System.out.println(curDate.toLocaleString());
    } public void run() {
    while (true) {
    try {
    Date dt=new Date();
    int sec=dt.getSeconds();
    int dur=sec-this.seconds;
    if(dur<0)
    dur+=60;
    GregorianCalendar gcl=new GregorianCalendar();
    gcl.setTime(date);
    gcl.add(GregorianCalendar.SECOND,dur);
    Date dt1=gcl.getTime();
    label.setText(dt1.toLocaleString());
    Thread.sleep(100);
    } catch (InterruptedException ie) { }
    }
    } public static void main(String[] args) {
    Calendar demo = new Calendar();
    demo.setVisible(true);
    demo.pack();
    demo.run();
    }
    }