Pozwól, że Ci pokażę kod tych dwóch klas:
Klasa EditUserController:
public class EditUserController implements Initializable {
@FXML
private TableView<User> tv_user;
@FXML
private Label l_uprawnienia;
@FXML
private Button btnEdytuj;
@FXML
private Label l_imie;
@FXML
private TableColumn<?, ?> id_tc;
@FXML
private TableColumn<?, ?> imie_tc;
@FXML
private TableColumn<?, ?> email_tc;
@FXML
private Button btnAnuluj;
@FXML
private Label l_haslo;
@FXML
private TableColumn<?, ?> nazwisko_tc;
@FXML
private Label l_login;
@FXML
private Label l_email;
@FXML
private Label l_nazwisko;
public TableView<User> getTv_user() {
return tv_user;
}
public void setTv_user(TableView<User> tv_user) {
this.tv_user = tv_user;
}
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
// TODO Auto-generated method stub
konfigurujPrzyciski();
konfigurujWidokTabeli();
pokazDetaleUsera(null);
tv_user.getSelectionModel()
.selectedItemProperty()
.addListener(
(observable, oldValue, newValue) -> pokazDetaleUsera(newValue));
}
public TableView<User> getTableViewUser() {
return tv_user;
}
public void konfigurujWidokTabeli() {
id_tc.setCellValueFactory(new PropertyValueFactory<>("idUser"));
imie_tc.setCellValueFactory(new PropertyValueFactory<>("firstName"));
nazwisko_tc.setCellValueFactory(new PropertyValueFactory<>("lastName"));
email_tc.setCellValueFactory(new PropertyValueFactory<>("email"));
tv_user.setEditable(true);
zaladujUserDotabeli();
}
public void zaladujUserDotabeli() {
DostepUser dbUser = new DostepUser();
ObservableList<User> listaUser = FXCollections
.observableArrayList(dbUser.pobierzWszystkichUser());
tv_user.setItems(listaUser);
}
private void pokazDetaleUsera(User user) {
if (user != null) {
l_imie.setText(user.getFirstName());
l_nazwisko.setText(user.getLastName());
l_email.setText(user.getEmail());
l_login.setText(user.getLogin());
l_haslo.setText(user.getPassword());
l_uprawnienia.setText(user.getPermissions());
} else {
l_imie.setText("");
l_nazwisko.setText("");
l_email.setText("");
l_login.setText("");
l_haslo.setText("");
l_uprawnienia.setText("");
}
}
public void konfigurujPrzyciski() {
btnEdytuj.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
ZmianaSceny zs = new ZmianaSceny();
zs.zmianaSceny("/EditUserPane.fxml", "Edit user");
}
});
}
}
Klasa EditUserPanelController(to okienko z txtfieldami):
public class EditUserPanelController implements Initializable {
@FXML
private TextField tf_imie;
@FXML
private Button btnZapisz;
@FXML
private TextField tf_haslo;
@FXML
private ComboBox<String> cb_uprawnienia;
@FXML
private TextField tf_login;
@FXML
private TextField tf_email;
@FXML
private Button btnAnuluj;
@FXML
private TextField tf_nazwisko;
private User userDoEdycji;
final ObservableList<String> uprawnienia = FXCollections
.observableArrayList("Administrator", "Kierownik", "Użytkownik");
public User getUserDoEdycji() {
return userDoEdycji;
}
public void setUserDoEdycji(User userDoEdycji) {
this.userDoEdycji = userDoEdycji;
}
@Override
public void initialize(URL location, ResourceBundle resources) {
cb_uprawnienia.setItems(uprawnienia);
konfigurujPrzyciski();
//TUTAJ GDZIEŚ JEST PROBLEM
User user = (User) ZmianaSceny.object;
if (user != null) {
tf_imie.setText(user.getFirstName());
tf_nazwisko.setText(user.getLastName());
tf_email.setText(user.getEmail());
tf_login.setText(user.getLogin());
tf_haslo.setText(user.getPassword());
cb_uprawnienia.setValue(user.getPermissions());
}
}
public void konfigurujPrzyciski() {
btnZapisz.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
ZmianaSceny zs = new ZmianaSceny();
zs.zmianaSceny("/FXMLAddUser.fxml", "Add user");
}
});
}
}