javafx 中线程使用的问题

javafx ui界面使用主线程,正常情况下主线程中执行的代码逻辑时 主界面会卡住无响应所有需要一个单独的线程来处理这部分业务

javafx提供了task类   以下是在一个按钮点击时间中开启task线程来完成任务  而此时主线程的ui不会被影响

Task<String> task = new Task<String>() {
            @Override
            protected String call() throws Exception {
            
                return deviceState();
               
            }
            @Override
            protected void running() {
            }
            @Override
            protected void succeeded() {
                taskSuccess(getValue());
            }
            @Override
            protected void cancelled() {
                Alert _alert = new Alert(Alert.AlertType.INFORMATION);
                _alert.setTitle("cancelled");
                _alert.show();
            }
            @Override
            protected void failed() {
                taskFailed(getException());
            }
        };
        new Thread(task).start();

 

javafx中只有主线程来可以对ui界面中的元素做操作   子线程想改变ui中的元素时 javafx提供了方法 

Platform.runLater(new Runnable() {
                @Override
                public void run() {
                    //更新JavaFX的主线程的代码放在此处
//                    p.cancelProgressBar();
                    lab1.setText("正在检查文件   "+obj.getName()+i);
                }
            });

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3618851/blog/3013526

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值