java - Javafx 按钮在第一次调用后没有响应(我在任务线程中调用方法)
问题描述
我已经初始化了 parseBtn onAction,但是因为 parseBtn 中的工作将超过一分钟,所以我创建了 Task 来完成新 Thread(task).start() 中的工作,该函数正在后台工作,但是在完成 parseBtn 后没有任何响应更多的。
我认为因为在另一个线程中的工作按钮没有通知工作完成
@FXML private Button parseBtn;
public void initialize(){
parseBtn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
new Thread(task).start();
}
});
}
Task<Void> task = new Task<Void>() {
@Override
public Void call() throws Exception {
//do something
return null;
}
};
任务中的过程已完成,但按钮不再响应
解决方案
我发现解决方案是我的错误是该任务不能多次调用。
class parser extends Thread{
@Override
public void run() {
//work to do
}
}
public void initialize(){
parseBtn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
parser p = new parser();
p.start();
}
});
}
推荐阅读
- sql - 使用SQL将数据从阿拉伯语翻译成英语,数据库是oracle
- google-api - 无法在 Google Calendar API 中获取我拥有的列表
- spring-boot - 使用 springboot_springdata_JPA 生成动态查询时面临问题。未生成所需的查询
- python - 堆叠列
- database - Laravel DB 事务和事件
- pcl - 理解 pcl::getMinMax3D()
- python-3.x - 多类分类器
- excel - 如何解决循环引用问题?
- python - 如何从多个不同的文件中获取数据并添加到 Python 中的一个数据框中?
- spring - 面向所有卡夫卡消费者的健康检查