方案: 我有一個父窗口叫做EditClientDeatils.fxm
升,並有一個TableView
對此。我正在編輯這些行結果,創建另一個名爲UserDetails.fxml
的窗口,並將行數據填充到這個FXML字段,現在從我的第二個窗口編輯完成後,如果我保存,我需要用最新的數據更新父表。根本不刷新表格。但是,當我調試我的表列表更新最新的數據,並沒有在窗口中顯示。 那麼如何從不同的控制器更新我的表格視圖?父表查看更新從子fxml
在子窗口中我正在像這樣加載父項。
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);
}
在我父類中有下面的代碼初始化方法:
@覆蓋 公共無效的initialize(URL網址,資源包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();
}
});
}
當我調試
customerTable.setItems(filteredData);
此filteredData
包含我的請求使用的數據,但不是在窗口上。 請指出我是否遺漏了任何東西。
那就是說它不清爽? – Magcus
是的,它不刷新 – Firu