JavaFX UI Frozen when performing Task in new Thread

前端 未结 1 474
旧巷少年郎
旧巷少年郎 2020-12-21 23:06

I have a problem getting the JavaFX UI to keep active while performing a background Task. I have set up this very simple code -



        
相关标签:
1条回答
  • 2020-12-21 23:35

    Use start() instead of run()

    @FXML
    ProgressBar prgbProgress;
    
    @FXML
    private void onClick(ActionEvent event) {
          Task <Void> t = new Task <Void> () {
    
            @Override
            protected Void call() throws Exception {
              for (int i = 0; i < 10; i++) {
                updateProgress(i, 9);
                Thread.sleep(1000);
              }
              return null;
            }
          };
          prgbProgress.progressProperty().bind(t.progressProperty());
          //new Thread(t).run(); // wrong
          new Thread(t).start(); // right
    }
    
    0 讨论(0)
提交回复
热议问题