시나리오 : EditClientDeatils.fxm
l이라는 부모 창과 이에 대해 TableView
이 있습니다. UserDetails.fxml
라는 다른 창을 만들고이 두 번째 창에서 편집 한 후이 FXML 필드에 행 데이터를 채우는 것으로이 행 결과를 편집하고 있습니다. 최신 데이터로 상위 테이블을 업데이트해야하는 경우 저장합니다. 테이블을 전혀 새로 고치지 않습니다. 그러나 내가 테이블을 디버깅 할 때 최신 데이터로 업데이트되고 Window에 표시되지 않습니다. 그래서 다른 컨트롤러에서 테이블보기를 업데이트 할 수 있습니까?상위 테이블 뷰 업데이트 하위 fxml에서
하위 창에서 이와 같이 부모를로드합니다. 내가
을 디버깅하고 때@Override 공공 무효의 초기화 (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();
}
});
}
:
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);
}
그리고 내 부모 클래스의
코드 아래 가진 방법을 초기화customerTable.setItems(filteredData);
이 filteredData
에 내 req가 포함되어 있습니다. uired 데이터가 있지만 Window에 오지는 않습니다. 나는 무엇이든을 놓친 경우에 지적한다.
즉, 새로 고침하지 않으시겠습니까? – Magcus
예 .. 상쾌하지 않다 – Firu