0
我正在嘗試使每三秒鐘使用javafx創建新的圓的程序。但是當我用thread.sleep()運行我的循環時,循環結束時出現帶有圓圈的圖形窗口。例如,我想製作10個圓圈。當所有10個圓圈被製成時,我的圖形窗口將會出現。但是我想讓我的圖形在第一個圓圈出現時出現。在那個窗口上,每三秒鐘就會出現一個圈子。使用thread.sleep創建javafx中的圓圈()
@Override
public void start(Stage primaryStage) throws Exception
{
Pane pane = new Pane();
//pane.setStyle("-fx-fill: linear-gradient(orange,orangered,blue);");
pane.setPrefSize(1200,1000);
pane.getChildren().add(new MyCircle().getCircle());
for(int i=0; i<10; i++)
{
try
{
Thread.sleep(3000);
}catch(InterruptedException e){}
pane.getChildren().add(new MyCircle().getCircle());
}
Form f = new Form("This is hello world", pane);
}
我做了具有場景的Form類,並且還製作了Circle類,它給了我所需的位置和樣式的圈子。在上面的這個程序中,當所有的圈子被製作時,我的gui會出現。
我不知道javafx,但它聽起來像你需要在每次睡眠之前激活其事件循環。 – totoro
您正在調用JavaFX UI線程上的'Thread.sleep',因此它凍結,無法更新顯示。我認爲這兩個問題應該讓你知道它應該如何完成:[從工作線程更新UI](http://stackoverflow.com/questions/20497845/constantly-update-ui-in-java-fx-worker線程阻塞JavaFX UI更新](http://stackoverflow.com/questions/33112560/why-is-a-thread-blocking-my-javafx-ui-thread) – Itai