Proszę, pomóż mi to rozgryźć. Jest kilka klas. Klasa Employee jest obiektem mogącym zawierać dane typu SimpleStringProperty. Istnieje plik fxml zawierający układ okna umożliwiający dodawanie/zmianę listy obiektów Pracownicy. Klasa AddEmployee to procedura obsługi zdarzeń dla pliku fxml. Podczas dodawania tekstu do pola TextField z wybranego obiektu, Pracownicy zaczynają przeklinać. Jeśli spojrzysz osobno, dane zostaną „wyciągnięte” z obiektu, ale nie można ich wstawić do pola tekstowego. Kod obsługi:
@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()); }
Kod obiektu: 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(); }
Błąd: Caused by: java.lang.NullPointerException at controllers.AddEmployee.setEmployees(AddEmployee.java:39) at controllers.EmployeesController.onButtonPressedAction(EmployeesController.java:89)
wskazuje na tf_employee.setText(employees.getId_eml());
samo okno:
GO TO FULL VERSION