以前学VB的时候有个Timer控件,设置它的响应时间为1秒,每过一秒钟重写一次Label为当前的系统时间,就可以做到了。可Java的GUI中没有这个控件,我试着用线程去写,可是无奈水平有限,半天都没有搞定,不知哪位大侠有实现的方法吗?先谢谢了!
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD hh:mm:ss")
jLabel1.setText(sdf.format(new Date()));
就是让它每秒钟变一次,并显示在Label中。

解决方案 »

  1.   

    新建一个线程对象把你的代码加入,然后调用它的sleep()方法
      

  2.   

    import javax.swing.*;
    import java.text.SimpleDateFormat;
    import java.util.Date;public class Test extends JFrame 
    {
    JLabel label;
    public Test()
    {
    super("Time");
            setSize(200,100);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            
            label=new JLabel();
            add(label);
            new A(label).start();
            setVisible(true);
    }
        public static void main(String[] args) {
            new Test();
        }
    }
    class A extends Thread
    {
    JLabel label;
    public A(JLabel label)
    {
    this.label=label;
    }
    public void run()
    {
    try {
         while(true){
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD hh:mm:ss");
    label.setText(sdf.format(new Date()));
         sleep(1000);
         }
        }
        catch (Exception ex) {
         ex.printStackTrace();
        }
    }
    }