Scénario: J'ai une fenêtre parente appelée EditClientDeatils.fxm
l et j'ai un TableView
à ce sujet. Je suis en train d'éditer ces résultats de ligne en créant une autre fenêtre nommée UserDetails.fxml
et en remplissant les données de ligne à ces champs FXML, maintenant après l'édition de ma deuxième fenêtre, Si je sauve je dois mettre à jour la table parente avec les dernières données. pas rafraîchir la table du tout. Mais quand j'ai débogué ma liste de table est mise à jour avec les dernières données et ne montre pas cela dans la fenêtre. Alors, comment puis-je mettre à jour ma vue de table depuis un autre contrôleur?Parent Table View Mise à jour De l'enfant fxml
Dans la fenêtre enfant, je charge le parent comme ceci.
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("EditClientDetails.fxml"));
EditClientDetailsController fooController = (EditClientDetailsController) fxmlLoader.getController();
try {
fxmlLoader.load();
} catch (IOException ex) {
Logger.getLogger(NewUserController.class.getName()).log(Level.SEVERE, null, ex);
}
Et dans ma classe mère méthode initialize ayant sous le code:
@Override public void initialize (url URL, ResourceBundle rb) {
fNameCol.setCellValueFactory(
new PropertyValueFactory<AtUser, String>("clientFirstName"));
lNameCol.setCellValueFactory(
new PropertyValueFactory<AtUser, String>("clientLastName"));
addressCol.setCellValueFactory(
new PropertyValueFactory<AtUser, String>("clientAddress"));
mobileCol.setCellValueFactory(
new PropertyValueFactory<AtUser, String>("clientMobileNumber"));
emailCol.setCellValueFactory(
new PropertyValueFactory<AtUser, String>("clientEmailID"));
catagoryCol.setCellValueFactory(
new PropertyValueFactory<AtUser, String>("clientTypeCode"));
genderCol.setCellValueFactory(
new PropertyValueFactory<AtUser, String>("gender"));
editSaveAction.setSortable(false);
editSaveAction.setCellValueFactory(
new Callback<TableColumn.CellDataFeatures<AtUser, Boolean>,
ObservableValue<Boolean>>() {
@Override
public ObservableValue<Boolean> call(TableColumn.CellDataFeatures<AtUser, Boolean> p) {
return new SimpleBooleanProperty(p.getValue() != null);
}
});
editSaveAction.setCellFactory(
new Callback<TableColumn<AtUser, Boolean>, TableCell<AtUser, Boolean>>() {
@Override
public TableCell<AtUser, Boolean> call(TableColumn<AtUser, Boolean> p) {
return new ClientButtonCell(customerTable);
}
});
// Add filtered data to the table
customerTable.setItems(filteredData);
// Listen for text changes in the filter text field
filterField.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable,
String oldValue, String newValue) {
updateFilteredData();
}
});
}
Quand je suis débogage
customerTable.setItems(filteredData);
ce filteredData
contient mon req données saisies mais ne venant pas sur Windows. s'il vous plaît signaler si j'ai raté quelque chose.
c'est-à-dire ce n'est pas rafraîchissant? – Magcus
Oui, il n'est pas rafraîchissant – Firu