-2
タイプButtons
のオブジェクトの配列を作成することになっていますが、出力は想定されているように倍数ではない単なる出力です。私は何をすべきか?あなたはこのような問題に実行する場合JavaFX内のオブジェクトの配列
int numberOfButtons = 20;
for (int i = 0; i < numberOfButtons; ++i) {
Button[] btn = new Button[numberOfButtons];
btn[i] = new Button();
btn[i].setText("Safe!");
btn[i].setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello World!");
}
});
FlowPane root = new FlowPane();
root.getChildren().addAll(btn[i]);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Button Blast!");
primaryStage.setScene(scene);
primaryStage.show();
}
あなたはおそらくあなたがループのためにあなたが作成する前に閉じる必要があることだけで、これが含まれているので、あなたはそれを絞り込む必要があります'ルート'。 forループの前に 'Button [] btn = new Button [numberOfButtons]'も移動する必要があります。それ以外の場合は、forループ内のすべての変数を20回作成しています。 –
さて、私はそれをしました...しかし、その後、 'root.getChildren()。add(btn [i]);'メソッドはもう動作しません。 –
次のように、forループを追加します: 'for(Button b:btn){root.getChildren()。add(b); } '。あるいは、おそらく単に 'root.getChildren()。addAll(btn)'をforループなしで行うことができます。 –