Почему при запуске javafx-приложения я вижу ошибку : "button is null"?
У меня есть вот такой метод:
public void click()
{
for(Button button : allButtons){
button.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent mouseEvent) {
equationField.appendText(button.getText());
}
});
}
}
}
И класс Buttons, в котором объявлены кнопки:
public class Buttons {
public TextField equationField;
public Button zeroButton;
public Button oneButton;
public Button twoButton;
public Button threeButton;
public Button fourButton;
public Button fiveButton;
public Button sixButton;
public Button sevenButton;
public Button eightButton;
public Button nineButton;
public Button plusButton;
public Button minusButton;
public Button multiplicationButton;
public Button divideButton;
public Button equalsButton;
Button[] allButtons = new Button[]{ zeroButton, oneButton,
twoButton, threeButton, fourButton, fiveButton,
sixButton, sevenButton, eightButton, nineButton};
При запуске программу вижу вот такую ошибку:
"button" is null
Ответы (1 шт):
Автор решения: Зонтик
→ Ссылка
Вы не создали ни одну из кнопок, а лишь объявили их в классе Buttons. То есть значение всех кнопок, которые вы создаёте - это null. Эти две записи дают один и тот же результат:
public Button zeroButton;
public Button zeroButton = null;
Button - это ссылочный тип данных! Кнопки нужно создать, прежде чем производить над ними действия:
public Button zeroButton = new Button();
И так с каждой кнопкой!