我製作了一個創建圖像的Java應用程序。我想將位於for循環內的代碼放在另一個for循環中,每當代碼完成並返回第一個for循環時更新stage/screen,但似乎使用setScene方法和如果我將它們放在第一個for循環內,show方法似乎沒有幫助。Java,for循環中的更新階段
對於下面的示例,我希望圓形圖自己發生,而不是單擊。我正在思考每100ms使用thread.sleep方法。
package javaFX;
import java.awt.Dimension;
import java.awt.Toolkit;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class circles extends Application {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
double WIDTH = screenSize.getWidth() - 80;
double HEIGHT = screenSize.getHeight() - 80;
@Override
public void start(Stage primaryStage) {
Group root = new Group();
Scene scene = new Scene(root, WIDTH, HEIGHT, Color.WHITE);
Canvas canvas = new Canvas(WIDTH, HEIGHT);
root.getChildren().add(canvas);
GraphicsContext graphics = canvas.getGraphicsContext2D();
primaryStage.setTitle("Circles!");
canvas.setOnMouseClicked(clickEvent -> {
for (int i = 0; i < 50; i++) {
double ran = Math.random() * WIDTH;
double nu = Math.random()*1000;
int ranNum = (int) nu;
graphics.strokeOval(ran, ran, ran, ran);
}
});
primaryStage.setScene(scene);
primaryStage.setResizable(false);
primaryStage.show();
}
}
請將您的代碼添加到問題中,以便人們可以理解此問題並可以爲您提供幫助。 – mindreader
這是代碼。 – Subtopic