如何在swt中的复合材料的特定时间之后更改标签

时间:2014-07-16 13:11:16

标签: java timer swt

我在复合材料中创建了一个标签,现在我需要每隔60秒更改一次标签,那么我们该如何做呢。用于创建标签的代码示例如下。

Label status = new Label(rightCompositeStatusbar, SWT.NONE);
status.setText("save successful");

所以现在60secs之后必须更改标签名称。 请帮帮我。

1 个答案:

答案 0 :(得分:0)

使用Display#timerExec(int, Runnable)

  

在经过指定的毫秒数后,由用户界面线程调用runnable的run()方法。如果毫秒小于零,则不执行runnable。

     

请注意,在调用runnable时,可能已经处理了将接收器作为其显示的小部件。因此,有必要在访问窗口小部件之前检查runnable中的这种情况。

public static void main(String[] args)
{
    final Display display = new Display();
    Shell shell = new Shell();
    shell.setLayout(new FillLayout());

    final Label status = new Label(shell, SWT.NONE);
    status.setText("0");

    display.timerExec(100, new Runnable()
    {
        int i = 1;

        @Override
        public void run()
        {
            if(!status.isDisposed())
                status.setText(i++ + "");

            display.timerExec(100, this);
        }
    });

    shell.pack();
    shell.open();

    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
        {
            display.sleep();
        }
    }
    display.dispose();
}