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 楼答案
优化代码的最佳方法是像您所说的那样拥有一个包含这些按钮的表。但是,如果不声明要进行更改的按钮,则无法工作
另一方面,可以在控制器中仅声明给定按钮的操作处理程序方法,而不定义按钮。您只需要确保在XML或场景生成器端提到该方法