@FXML
private void onEditChange(TableColumn.CellEditEvent<ModelTable, String> event) {
ModelTable tbl = table.getSelectionModel().getSelectedItem();
tbl.setName(event.getNewValue());
}
我要在选择后更改表格视图的内容。
答案 0 :(得分:0)
您需要使用侦听器,并将其放置在initialize方法中
当您单击表中的一行时,您将调用一些执行所需行为的方法。我们已经发布了代码,当选择表行时,我们导航到一个新屏幕。在导航之前,我们将屏幕命名为blablaPane,我们设置了两个静态变量,以便可以在下一个屏幕上使用这些值。
private void toChildView() throws IOException{
stage = (Stage)parentTVPane.getScene().getWindow();// pane you are ON
childTVPane = FXMLLoader.load(getClass().getResource("childtableview.fxml"));// pane you are GOING TO
Scene scene = new Scene(childTVPane);// pane you are GOING TO
scene.getStylesheets().add(getClass().getResource("diary.css").toExternalForm());
stage.setScene(scene);
stage.setTitle("Diary Entries by Date Entered and Title");
stage.show();
stage.sizeToScene();
stage.centerOnScreen();
}
private void showTableDataDetails(ParentModel info) throws IOException{
if (info != null) {
info = (ParentModel) ptable.getSelectionModel().getSelectedItem();
strMONTH = info.getPMonth();
strYEAR = info.getPYear();
toChildView();
}
}
@Override
public void initialize(URL url, ResourceBundle rb) {
try {
ReadFromParent();
} catch (SQLException ex) {
Logger.getLogger(ParentTableViewController.class.getName()).log(Level.SEVERE, null, ex);
}
ptable.getSelectionModel().selectedItemProperty().addListener((ObservableValue<? extends ParentModel>
observable,ParentModel oldValue, ParentModel newValue) -> {
try {
showTableDataDetails((ParentModel) newValue); // When a row of the table is Selected call
// Proper Construction // showTableDataDetails method
} catch (IOException ex) {
Logger.getLogger(ParentTableViewController.class.getName()).log(Level.SEVERE, null, ex);
}
});
}