我用SWT做了个界面出来,其中一个label用来检测数据更新的进展,现在我只能用一个button来获取这个label的值。我想问的是:如何能让这个label的值自动刷新,不需要一个button通过事件来获取它的值,就像杀毒软件杀毒的时候一直刷新检测到哪个文件位置的那种效果,有谁可以指导我下谢谢了!

解决方案 »

  1.   

    protected JLabel label = new JLabel();
    XX xx = new XX();label.setForeground(Color.blue);
    label.setText("Image Monitor");
    xx.add(label); class InputReloadThread extends Thread {
         public InputReloadThread() {
         super();
         }     /**
          * The run function of the thread.
          */
         public void run() {
         if (refresh) {
         label.setText("Start Refreshing...");
         LogManager.getLogManager().fireLogEvent(LogManager.Refreshing, "Refreshing...");
         label.setText("Done.");
         }
         }
        }
      

  2.   

    两种做法1.继承Runnable接口或Thread类,设置线程的方法sleep()方法等待的时间。
    2.使用Timer类,在创建timer实例时设置Timer的下次执行事件等待的时间。
      

  3.   

    现在我只能用一个button来获取这个label的值。这是一个函数姑且定义为getNew();
    给你个思路:在jsp页面,写js脚本程序,有一个Interval 属性这是个相隔一段时间会执行某个方法的属性
    你可以写一个循环(退出条件自己定)里面填写window.setInterval('getNew()',1000);  这样就会保证在1秒后刷新一次
      

  4.   

    现在我只能用一个button来获取这个label的值。这是一个函数姑且定义为getNew(); 
    给你个思路:在jsp页面,写js脚本程序,有一个Interval 属性这是个相隔一段时间会执行某个方法的属性 
    你可以写一个循环(退出条件自己定)里面填写window.setInterval('getNew()',1000);  这样就会保证在1秒后刷新一次顶下
      

  5.   

    1楼的朋友能不能给我举个实例,我看了你的代码,基本明白你的意思:利用日志文件对变量进行跟踪,但是我现在对日志管理这方面不甚了解,看了你的代码还是很吃力,你能给我讲讲具体怎么实现么LogManager.getLogManager().fireLogEvent(LogManager.Refreshing, "Refreshing...");还有这句话不懂什么意思,能给点注释么谢谢了!