gpt4 book ai didi

java - 应用程序进行一些计算时 UI 卡住

转载 作者:行者123 更新时间:2023-12-01 11:36:25 25 4
gpt4 key购买 nike

我有带有许多表格 View 的 java fx 应用程序。我们如何知道 javafx tableview 中有数据绑定(bind),它在两个方向上工作。因此,当我的应用程序使用 tableviws UI 中的数据进行计算时,会卡住,因为我的应用程序不断更新 tableviews(ObservableList) 中的数据。我确实尝试过使用 Platform.RunLater,但它对我没有帮助。有什么想法吗?

最佳答案

Platform.runLater 本质上延迟您的可运行 - 但它将再次在 UI 线程上运行,因此在执行期间阻止每个用户输入。

解决办法很简单,use a worker thread :

Task task = new Task<Void>() {
@Override public Void call() {
static final int max = 1000000;
for (int i=1; i<=max; i++) {
if (isCancelled()) {
break;
}
updateProgress(i, max);
}
return null;
}
};
ProgressBar bar = new ProgressBar();
bar.progressProperty().bind(task.progressProperty());
new Thread(task).start();

尽管建议使用 ExecutorService 类,因为它允许更受控制的行为:http://java-buddy.blogspot.de/2012/06/example-of-using-executorservice.html

关于java - 应用程序进行一些计算时 UI 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29942527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com