#programowanie #java #javafx Czemu tabela nie aktualizuje mi się przy zmianie wartości jakiegoś obiektu z tej tabeli? Używam SimpleStringProperty i powinno zaktualizować tabele a nie aktualizuje tylko muszę odświeżać całą tabelę
userDAO = new UserDAOImpl(); observableUserTable = FXCollections.observableArrayList(userDAO.findAll()); userTable.setItems(observableUserTable); emailColumn.setCellValueFactory( new PropertyValueFactory<>("email"));
metoda wykonywana po kliknięciu przycisku @FXML void newUser(ActionEvent event) { User user = (User) userTable.getSelectionModel().getSelectedItem(); user.setEmail(user.getEmail() + "1"); UserDAO udao = new UserDAOImpl(); udao.updateUser(user); }
część klasy User private SimpleStringProperty email; @Column(name = "EMAIL", unique = true, nullable = false) public String getEmail() { return email.get(); } public void setEmail(String email) { // this.email = email; if (this.email == null) { this.email = new SimpleStringProperty(); } this.email.set(email); }
@cinek181992: Na pierwszy rzut oka to Twoja klasa User nie jest zgodna z wymogami TableView. Zajrzyj do dokumentacji i zobacz, że powinny tam być tak naprawdę dwa specyficzne gettery
#blender #3d #grafika3d Ok, kończę ten projekt bo mi za dużo czasu przepalał. Uczyłem się nieco blendera, więc postanowiłem wymodelować pewną twarz. Dlatego ten jegomość, bo w necie nie ma jego dobrych modeli 3d. Postanowiłem zrobić lepszy. W komentarzach dodatkowe foty.
Deklaracja tabeli i wypełnienie danymi
@FXML
private TableView userTable;
@FXML
private TableColumn emailColumn;
private ObservableList observableUserTable;
userDAO = new UserDAOImpl();
observableUserTable = FXCollections.observableArrayList(userDAO.findAll());
userTable.setItems(observableUserTable);
emailColumn.setCellValueFactory(
new PropertyValueFactory<>("email"));
metoda wykonywana po kliknięciu przycisku
@FXML
void newUser(ActionEvent event) {
User user = (User) userTable.getSelectionModel().getSelectedItem();
user.setEmail(user.getEmail() + "1");
UserDAO udao = new UserDAOImpl();
udao.updateUser(user);
}
część klasy User
private SimpleStringProperty email;
@Column(name = "EMAIL", unique = true, nullable = false)
public String getEmail() {
return email.get();
}
public void setEmail(String email) {
// this.email = email;
if (this.email == null) {
this.email = new SimpleStringProperty();
}
this.email.set(email);
}