【发布时间】:2012-12-05 19:12:54
【问题描述】:
我正在为我的应用程序创建 UI,它与其他平台的版本共享一个核心模块。在 JavaFX 中,我尝试使用 Tasks 在后台执行操作,但我不知道如何更新任务状态。
这就是我想要做的。 user 变量包含一个执行 xmlrpc 请求的类的实例:
public Task<Integer> doLogin()
{
return new Task<Integer>() {
@Override
protected Integer call()
{
user.login();
if (!user.getIsAuthorized())
{
// set the state to FAILED
}
else
{
// set the state to SUCCEDED
}
user.remember();
}
};
}
在我的 UI 线程中,我希望能够执行类似的操作来更新我的图形 UI:
loginTask.setOnSucceeded(new EventHandler<WorkerStateEvent>() {
@Override
public void handle(WorkerStateEvent t) {
// perform an UI update here depending on the state t
}
});
我应该如何设置状态? Task API 中没有任何内容。
【问题讨论】:
标签: xmlrpc java multithreading concurrency javafx-2 javafx