有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何引用按钮而不在控制器中为其创建变量

我有一个FXML文件,其中有很多按钮。按钮的id格式为“button1”到“button149”

触发onAction事件时,在运行时更改按钮文本的常规方法是以下代码:

public class GUIController{
  public Button button1;
  public Button button2;
  .
  .
  .
  public Button button149;
  
  public void handleButtonClick(){
    button1.setText("test");
    button2.setText("test");
    .
    .
    .
  }
}

这有一个明显的问题,我需要150行代码来定义所有按钮变量

所以我想知道:

有没有一种方法可以更改按钮的属性(如文本或颜色),而无需在控制器中为其创建变量,而是直接使用其ID引用它

或者有没有一种方法可以创建一个列表或所有按钮的数组,这样我就可以为每个按钮创建一个变量,而不必为每个按钮编写一行代码

编辑: 应该提到的是,所有按钮都位于网格窗格中。每个字段一个。也许这提供了解决这个问题的选项


共 (1) 个答案

  1. # 1 楼答案


    优化代码的最佳方法是像您所说的那样拥有一个包含这些按钮的表。但是,如果不声明要进行更改的按钮,则无法工作

    另一方面,可以在控制器中仅声明给定按钮的操作处理程序方法,而不定义按钮。您只需要确保在XML或场景生成器端提到该方法