Label.setText NullPointerExceptionJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Label.setText NullPointerException

Сообщение Anonymous »

Привет, впервые здесь, но вот:

У меня есть приложение JavaFX, которое динамически изменяет метки пользовательского интерфейса FXML, а данные извлекаются из класса Player. p>

Двумя рассматриваемыми классами являются Player.java и InterfaceHandler.java.

Класс игрока хранит сведения об игроке, и я хочу передать эти сведения классу интерфейса, который задает текст на метках.

В качестве теста в моем пользовательском интерфейсе FXML есть только кнопка и две метки.

Если он нажмет кнопку, он вызовет метод handleButton, и для locationLabel будет установлено значение «Город».

Однако если я вызову метод locationLabel() в своем классе Player, я получу исключение NullPointerException при вызове nameLabel.setText(name). В ходе отладки я обнаружил, что строка имени в классе интерфейса такая же, как и должна быть "Дэн".

Может ли кто-нибудь помочь?

Основной класс:

public class Main extends Application {

public void start(final Stage mainStage) throws Exception {

Parent root = FXMLLoader.load(getClass().getResource("MainScreen.fxml"));
Scene scene = new Scene(root);
mainStage.setTitle("Main Screen");
mainStage.setScene(scene);
mainStage.show();
}

public static void main(String[] args) {
launch(args);
}
}


Класс игрока:

public class Player{

InterfaceHandler ui = new InterfaceHandler();

public void setNameLabel() {

String name = "Dan";
ui.setName(name);
}


Класс InterfaceHandler:

public class InterfaceHandler implements Initializable {

public Label nameLabel;
public Label locationLabel;

public void handleButton(ActionEvent event) throws IOException {

locationLabel.setText("Town");
}

public void setName(String name){
nameLabel.setText(name);
}
}


MainScreen.fxml:























Подробнее здесь: https://stackoverflow.com/questions/225 ... rexception
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»