如何访问javafx动态按钮的事件处理程序

问题描述:

如何获取我的动态按钮在Gridpane中的事件处理程序?如何访问javafx动态按钮的事件处理程序

Stage window; 

public void start(Stage primaryStart) throws Exception{ 
    window = primaryStart; 
    window.setTitle("Minesweeper (Eventually)"); 
    //GridPane with 10px padding around edge 
    GridPane grid = new GridPane(); 
    grid.setPadding(new Insets(10, 10, 10, 10)); 
    for(int i = 0; i < 5; i++){ 
     for(int j = 0; j<5; j++){ 
      Button button = new Button("[]"); 
      GridPane.setConstraints(button, i,j); 
      grid.getChildren().add(button); 
     } 
    } 
    Scene scene = new Scene(grid, 300, 200); 
    window.setScene(scene); 
    window.show(); 
    button.setOnAction(e -> {System.out.println("Something");}); 
} 

因为setOnAction在引用按钮对象时给了我一个错误。

你必须用这个替换你的代码。

public void start(Stage primaryStart) throws Exception{ 
    window = primaryStart; 
    window.setTitle("Minesweeper (Eventually)"); 
    //GridPane with 10px padding around edge 
    GridPane grid = new GridPane(); 
    grid.setPadding(new Insets(10, 10, 10, 10)); 
    for(int i = 0; i < 5; i++){ 
     for(int j = 0; j<5; j++){ 
      Button button = new Button("[]"); 
      button.setOnAction(e -> {System.out.println("Something");}); 
      GridPane.setConstraints(button, i,j); 
      grid.getChildren().add(button); 
     } 
    } 
    Scene scene = new Scene(grid, 300, 200); 
    window.setScene(scene); 
    window.show(); 

}