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