<AI>
JavaFXでのforループ処理は、通常のJava言語と同様に記述します。

画面(UI)の初期化や複数コンポーネントの配置、リストデータの処理で活用できます。
重い処理を行う場合は画面フリーズを防ぐため、別スレッド(Task)でforループを回す必要があります。

基本的なforループ処理(UIの動的生成)複数のノード(ボタンや図形など)を生成し、レイアウトペインに追加します。

java
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class LoopExample extends Application {
    @Override
    public void start(Stage primaryStage) {
        VBox root = new VBox();
        
        // forループで5つのボタンを作成して追加
        for (int i = 1; i <= 5; i++) {
            Button button = new Button("ボタン " + i);
            root.getChildren().add(button);
        }

        Scene scene = new Scene(root, 300, 250);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

コードは注意してご使用ください。

拡張for文(リスト処理)
データモデルやリストから要素を取り出してUIコンポーネントに反映させる場合によく使用されます。

java
import java.util.Arrays;
import java.util.List;
import javafx.scene.control.Label;
// ... (他のインポートは省略)

List names = Arrays.asList("Alice", "Bob", "Charlie");

for (String name : names) {
    Label label = new Label("こんにちは、" + name + "さん");
    root.getChildren().add(label);
}

コードは注意してご使用ください。

注意点:時間のかかるループ処理は「非同期」にする
forループ内でファイル読み込みや重たい計算を行うと、画面がフリーズします。
その場合は Task を使用し、バックグラウンドでループ処理を実行してください。

java
import javafx.concurrent.Task;

Task task = new Task() {
    @Override
    protected Void call() throws Exception {
        for (int i = 0; i < 100; i++) {
            // 時間のかかる処理
            Thread.sleep(100); 
            
            // 進捗の更新(必要に応じて)
            updateProgress(i, 100);
        }
        return null;
    }
};

// スレッドの開始
Thread thread = new Thread(task);
thread.setDaemon(true);
thread.start();

コードは注意してご使用ください。