2017-08-30 57 views
-2

我已經無處不在地閱讀了。我無法解決這個問題。JavaFX GUI在執行循環時保持凍結

public class Controller { 
    @FXML 
    public Label myTimes; 
    @FXML 
    private TextField username; 
    @FXML 
    private TextField password; 
    @FXML 
    private TextField totalTimes; 
    public void times (ActionEvent event) { 
     String usernameVar = username.getText(); 
     String passwordVar = password.getText(); 
     String times = totalTimes.getText(); 
     main Main = new main(); 
     Main.booster(usernameVar, passwordVar, Integer.parseInt(times)); 
     myTimes.setText("Completed: " + Integer.toString(Main.timess)); 

    } 

該助推器方法是打開硒並在網上執行任務。但是,當它這樣做時,GUI會凍結,直到任務完成。我試過使用任務和線程,但沒有運氣(我真的不知道如何使用它們)。任何人都可以請給我一個解決方案?

+4

解決方案是使用任務和線程。如果這不起作用,那是因爲你沒有做到正確。你應該發佈你的嘗試,並以什麼方式解釋它 不起作用。 –

+0

你使用線程和任務內部你的方法**助推器**或你使用線程從你的控制器調用你的方法? –

+0

我使用了任務,並且在幾小時後我終於開始工作了。 –

回答

-1

有兩個選項中的Java:

  1. 使用Thread

    文檔:Thread

  2. 使用Task(一種Runnable Class

    文檔:Task

    小例子:Task with ProgressBar

我用normaly一個Task但是這只是一個品味的問題

PS:在線程或任務的代碼在後臺運行,你的其他代碼繼續正常

+1

但是,如果您使用任務,您仍然需要一個線程,當然。 –

+0

這就是對的:)我更新了我的答案...在你的情況下,我建議你嘗試一下這個例子鏈接...如果你有問題,你可以再次對我進行調整 – Developer66

+0

但是'任務'不會延伸'線程'。 –