Javafx在运行任务之前和之后更改文本

时间:2013-01-04 09:32:16

标签: multithreading label task javafx-2

我想在运行任务之前和之后更新状态栏标签的一些文本。 这是示例代码:

    label.setText("please wait...");

    Task<Void> task = new Task<Void>() {
        @Override
        protected Void call() throws Exception {
            veryLongOperation();
            return null;
        }
    };

    Thread thread = new Thread(task);
    thread.start();

    while (thread.isAlive()) {
        System.out.println("waiting...");
        Thread.currentThread().sleep(10);
    }

    System.out.println("work done!");
    label.setText("work done!");

使用此示例无法更改标签的文本值...如何更新文本?

1 个答案:

答案 0 :(得分:0)

您是否曾尝试覆盖the Task#suceeded method,如下所示:

Task<Void> task = new Task<Void>() {
    @Override
    protected Void call() throws Exception {
        veryLongOperation();
        return null;
    }

    @Override
    protected void succeeded() {
        System.out.println("work done!");
        label.setText("work done!");
    }
};

new Thread(task).start();