当前位置: 首页 > news >正文

JavaFx异常: Not on FX application thread; currentThread = Timer-0

我的定时器任务中有两个控件:

@FXML TextArea Display;
@FXML Label Label_Display;

执行下方代码会抛出:Exception in thread "Timer-0" java.lang.IllegalStateException: Not on FX application thread; currentThread = Timer-0

Timer_task1 = new Timer();
Timer_task1.schedule(new TimerTask(){int count = 0;@Overridepublic void run(){if (TCP_IP_IsConnect){count += 1;System.out.println("Timer1!" + count);Label_Display.setText(String.format("count=%s", count));//出错之处:Not on FX         application thread; currentThread = Timer-0Display.setText(String.format("count=%s", count));//JOptionPane.showMessageDialog(null, "警告提示框"+count, "Title", JOptionPane.WARNING_MESSAGE);}}
},0,500);

 让人百思不得解的是,这俩都是控件,为什么注释掉上面代码中的

Label_Display.setText(String.format("count=%s", count));

他就正常了呢?这不都是控件吗?

没关系,问题还是可以解的,参考这里:https://stackoverflow.com/questions/26916640/javafx-not-on-fx-application-thread-when-using-timer

按他的办法,更改为以下代码后,两个控件都可以使用了,难道这就是C#里面的那个this.Invoke吗?使用委托来解决跨线程。

Timer_task1 = new Timer();
Timer_task1.scheduleAtFixedRate(new TimerTask(){int count = 0;@Overridepublic void run(){Platform.runLater(() ->{if (TCP_IP_IsConnect){count += 1;System.out.println("Timer1!" + count);Label_Display.setText(String.format("count=%s", count));Display.setText(String.format("count=%s", count));//JOptionPane.showMessageDialog(null, "警告提示框"+count, "Title", JOptionPane.WARNING_MESSAGE);}});}
},0,500);

http://www.lryc.cn/news/119666.html

相关文章:

  • 【Django】无法从“django.utils.encoding”导入名称“force_text”
  • docker-compose redis 一直启动失败
  • 使用GUI Guider工具在MCU上开发嵌入式GUI应用 (1) - GUI Guider简介及安装
  • 解决:django设置DEBUG=false时出现的问题
  • 2023-08-10力扣每日一题
  • C#与halcon联合 缩放移动自适应图像
  • 推荐 4 个 yyds 的 GitHub 项目
  • chrome插件开发实例05-页面间通信
  • linux安装ftp
  • 前后端分离------后端创建笔记(上)
  • Java不可变集合详解
  • 常见的JavaScript日常问题
  • css modules的用法和在react项目中的应用
  • 【LangChain概念】了解语言链️:第2部分
  • 步入React前厅 - Css In React
  • OpenCV(三)——图像分割(二)
  • 28.Netty源码之缓存一致性协议
  • 造个轮子-任务调度执行小框架-任务清单执行恢复实现
  • 若依部署前后端
  • 2009年上半年 软件设计师 下午试卷
  • SpringBoot使用自定义事件监听器的demo
  • arcgis定义投影与投影
  • Flink多流处理之Broadcast(广播变量)
  • LVS/DR+Keepalived负载均衡实战(一)
  • 测试DWPose的onnx +Unity barracuda
  • 轻装上阵,不调用jar包,用C#写SM4加密算法【卸载IKVM 】
  • redis学习笔记(一)
  • 最优化问题 - 拉格朗日对偶
  • 关于ISO27701隐私信息安全管理体系介绍
  • C语言案例 分数列求和-11