尝试为数组中的按钮提供颜色时数组中出现空点错误
Null point error in Array when trying to give Buttons in array a color
我有一个包含几个按钮的数组,我试图遍历该数组并为每个按钮指定一种颜色,但是我一直收到空点异常错误。
public static Button[] arrayButtons = new Button[33];
@FXML public Button btn1 = new Button();
@FXML public Button btn2 = new Button();
@FXML public Button btn3 = new Button();
@FXML
public void initializeButtonArray() {
arrayButtons[1] = btn1;
arrayButtons[2] = btn2;
arrayButtons[3] = btn3;
arrayButtons[4] = btn4;
}
@FXML
private void test() {
initializeButtonArray();
for(Button btn : arrayButtons) {
btn.setStyle("-fx-background-color: #FF0000"); //error occurs here
}
}
当我尝试为每个循环中的所有按钮指定颜色时发生错误。
您只初始化了数组中的几个元素。其他正在引用 null。
更改这行代码
public static Button[] arrayButtons = new Button[33];
至
public static Button[] arrayButtons = new Button[4];
注意数组从索引 0 开始!
数组从 0 开始,因此您永远不会将 arrayButtons[0]
设置为任何东西,将其保留为 null
也就是在调用时等待抛出 NullPointer。你也永远不会初始化 btn4
,它会在调用时抛出一个空指针,最后为什么你要创建一个 33 按钮数组,当你只初始化 3 个时,其他人会抛出你想猜它是 NPE
试试这个
public static Button[] arrayButtons = new Button[4];
public void initializeButtonArray() {
arrayButtons[0] = btn1;
arrayButtons[1] = btn2;
arrayButtons[2] = btn3;
arrayButtons[3] = btn4;
}
添加这个
@FXML public Button btn4;
在您通过 arrayButtons 循环的第一次迭代中,它抛出一个空指针,因为它正在寻找 arrayButtons[0]
但它设置为 null
这会破坏您的整个循环
此外,如果您引用的是 FXML,则不要输入 = new Button();
我有一个包含几个按钮的数组,我试图遍历该数组并为每个按钮指定一种颜色,但是我一直收到空点异常错误。
public static Button[] arrayButtons = new Button[33];
@FXML public Button btn1 = new Button();
@FXML public Button btn2 = new Button();
@FXML public Button btn3 = new Button();
@FXML
public void initializeButtonArray() {
arrayButtons[1] = btn1;
arrayButtons[2] = btn2;
arrayButtons[3] = btn3;
arrayButtons[4] = btn4;
}
@FXML
private void test() {
initializeButtonArray();
for(Button btn : arrayButtons) {
btn.setStyle("-fx-background-color: #FF0000"); //error occurs here
}
}
当我尝试为每个循环中的所有按钮指定颜色时发生错误。
您只初始化了数组中的几个元素。其他正在引用 null。
更改这行代码
public static Button[] arrayButtons = new Button[33];
至
public static Button[] arrayButtons = new Button[4];
注意数组从索引 0 开始!
数组从 0 开始,因此您永远不会将 arrayButtons[0]
设置为任何东西,将其保留为 null
也就是在调用时等待抛出 NullPointer。你也永远不会初始化 btn4
,它会在调用时抛出一个空指针,最后为什么你要创建一个 33 按钮数组,当你只初始化 3 个时,其他人会抛出你想猜它是 NPE
试试这个
public static Button[] arrayButtons = new Button[4];
public void initializeButtonArray() {
arrayButtons[0] = btn1;
arrayButtons[1] = btn2;
arrayButtons[2] = btn3;
arrayButtons[3] = btn4;
}
添加这个
@FXML public Button btn4;
在您通过 arrayButtons 循环的第一次迭代中,它抛出一个空指针,因为它正在寻找 arrayButtons[0]
但它设置为 null
这会破坏您的整个循环
此外,如果您引用的是 FXML,则不要输入 = new Button();