我需要在流动窗格中添加一个包含20个按钮的数组。我已经创建了阵列,但似乎无法显示所有按钮。为什么只添加一个按钮?
public class Activity4 extends Application
{
@Override
public void start(Stage primaryStage)
{
Button[] btn = new Button[20];
for(int i=0; i<btn.length;i++)
{
btn[i] = new Button();
btn[i].setText("Safe!");
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();
btn[i].setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event)
{
System.out.println("Hello World!");
}
});
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
答案 0 :(得分:1)
在循环的每次迭代中,您创建一个新的FlowPane
,然后创建一个新的Scene
并将其设置为舞台。
您需要在循环之前创建一个FlowPane
。在循环中,创建按钮,使用它们注册处理程序,然后将它们添加到流窗格中。
循环之后的,使用流动窗格创建Scene
,在舞台中设置它,然后显示舞台。
答案 1 :(得分:0)
import javafx.application.Application;
import javafx.scene.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;
import javafx.scene.control.Button;
public class Activity4 extends Application
{
@Override
public void start(Stage primaryStage)
{
Button [] btn = new Button[20];
for(int i=0; i<btn.length;i++)
{
btn[i] = new Button();
btn[i].setText("Safe!");
}
FlowPane root = new FlowPane();
root.getChildren().addAll(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Button Blast!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}