JavaRush/Java блог/Архив info.javarush/JavaFX работа с TextField и элементом TableView.
Artemka58_1
21 уровень

JavaFX работа с TextField и элементом TableView.

Статья из группы Архив info.javarush
участников
Помогите пожалуйста разобраться. Имееются несколько классов. Класс 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()); Само окно:JavaFX работа с TextField и элементом TableView. - 1
Комментарии (3)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
funner
Уровень 21
3 июля 2016, 06:46
Вероятно на момент запуска строки 39 поле TextField tf_employee не инициализировано (в java-коде).
Проверьте наличие связи fx:id для поля TextField tf_employee в FXML
<TextField fx:id="tf_employee" text="" />

Если Вы используете SceneBuilder стоит посмотреть здесь:
funner
Уровень 21
3 июля 2016, 13:24
Если вдруг не помогло — сообщите. Подумаем еще.
funner
Уровень 21
4 июля 2016, 02:13
employees.getId_eml() = null