私は、javafxを使って3秒ごとに新しいサークルを作るプログラムを作ろうとしています。しかし、私は私のループをthread.sleep()で動かすと、ループが終わったときにサークルのグラフィックウィンドウが現れます。 たとえば、10個のサークルを作りたいと思います。 10個のサークルがすべて作成されると、グラフィックウィンドウが表示されます。しかし、私は最初のサークルが作られたときに私のグラフィックを表示したい。そしてその窓に3秒ごとに円が見つからない。javafxで円をthread.sleep()で作成する
@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'を呼び出しているため、フリーズして表示を更新できません。私はこれらの2つの質問はあなたにそれがどのようにすべきかというアイデアを与えるべきだと思います:[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