Помогите пожалуйста разобраться.
Имееются несколько классов. Класс Employee - объект который может содержать данные типа SimpleStringProperty.
Есть fxml файл в котором находится разметка окна для добавления\изменения списка объектов Employees.
Класс AddEmployee является обработчиком событий fxml файла.
При добавлении текста в TextField из выбранного объекта Employees начинает ругаться. Отдельно если смотреть, то данные "извлекаются" из объекта, но вставить в TextField не получается.
Код обработчика:
@FXML
private TextField tf_employee;
@FXML
private TextField tf_surname;
@FXML
private TextField tf_name;
@FXML
private TextField tf_patronymic;
@FXML
private TextField tf_post;
Employees employees;
public void setEmployees(Employees employees) {
if (employees == null){
return;
}
this.employees = employees;
tf_employee.setText(employees.getId_eml());
tf_employee.setText(employees.getId_eml().toString());
tf_surname.setText(employees.getSurname_empl());
tf_name.setText(employees.getName_empl().toString());
tf_patronymic.setText(employees.getPathronymic_empl());
tf_post.setText(employees.getPost_empl());
}
Код объекта:
private SimpleStringProperty id_eml = new SimpleStringProperty("");
private SimpleStringProperty surname_empl = new SimpleStringProperty("");
private SimpleStringProperty name_empl = new SimpleStringProperty("");
private SimpleStringProperty pathronymic_empl = new SimpleStringProperty("");
private SimpleStringProperty post_empl = new SimpleStringProperty("");
public Employees(){}
public Employees(String id_empl, String surname_empl, String name_empl, String pathronymic_empl, String post_empl) {
this.id_eml = new SimpleStringProperty(id_empl);
this.surname_empl = new SimpleStringProperty(surname_empl);
this.name_empl = new SimpleStringProperty(name_empl);
this.pathronymic_empl = new SimpleStringProperty(pathronymic_empl);
this.post_empl = new SimpleStringProperty(post_empl);
}
public String getId_eml() {
return id_eml.get();
}
Ошибка: Caused by: java.lang.NullPointerException
at controllers.AddEmployee.setEmployees(AddEmployee.java:39)
at controllers.EmployeesController.onButtonPressedAction(EmployeesController.java:89)
указывает на tf_employee.setText(employees.getId_eml());
Само окно:
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Проверьте наличие связи fx:id для поля TextField tf_employee в FXML
Если Вы используете SceneBuilder стоит посмотреть здесь: