标签未显示以前的文本,仅显示更新的文本

时间:2015-08-23 04:42:59

标签: java label

我对这个程序的问题是,首先我希望标签显示系统日期,等待5秒然后显示" hi"但是在运行代码时,标签只显示" hi"。请帮我找错。

import java.util.*;
import javax.swing.*;

class DigClock
{

public static void main(String a[])
{
    try
    {
        JFrame f= new JFrame();
        JPanel p=new JPanel();
        JLabel l=new JLabel((new Date()).toString());
        p.add(l);
        f.add(p);
        Thread.sleep(5000);
        l.setText("hi");
        f.setVisible(true);
        f.setExtendedState(JFrame.MAXIMIZED_BOTH);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    catch(Exception e)
    {}
  }
}

1 个答案:

答案 0 :(得分:0)

一个简单的错误......你写了

 thread.sleep 

在表单可见性之前,在该休眠时间,您的页面可见性为false,您无法看到该页面。这意味着您可以在5秒后打开页面。五秒钟后标签已经更改。

复制此代码

    public class DigClock {

        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
            try
        {
            JFrame f= new JFrame();
            JPanel p=new JPanel();
            JLabel l=new JLabel((new Date()).toString());
            p.add(l);
            f.add(p);

            f.setVisible(true);
            f.setExtendedState(JFrame.MAXIMIZED_BOTH);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            Thread.sleep(5000);
            l.setText("hi");
        }
        catch(Exception e)
        {}
        }
    }

Regds ..