I tried to find a solution to save data for my editable cell direct without pressing enter to save it. Most solutions were for starting editing without double click(I implemented that) and I saw no solution for saving data without enter key. So based on my knowledge and research I didn't find anything to help me, is this what I'm asking possible and how to do it?
Edited:
@FXML
private TableView tableVeiwResults;
@FXML
private TableColumn colAnalysis;
@FXML
private TableColumn colResult;
private AnalysisPacientDetailsJpaController apdjpa = new
AnalysisPacientDetailsJpaController(emf);
colAnalysis.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<AnalysisPacientDetails, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(TableColumn.CellDataFeatures<AnalysisPacientDetails, String> param) {
return new SimpleStringProperty((param.getValue()).getIdAnalysis().getAnalysisName());
}
});
colResult.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<AnalysisPacientDetails, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(TableColumn.CellDataFeatures<AnalysisPacientDetails, String> param) {
return new SimpleStringProperty((param.getValue()).getAnalysisPacientDetailsResults());
}
});
colResult.setOnEditCommit(new EventHandler<TableColumn.CellEditEvent<AnalysisPacientDetails, String>>() {
@Override
public void handle(TableColumn.CellEditEvent<AnalysisPacientDetails, String> event) {
try {
String newValue = event.getNewValue();
if (newValue == null || newValue.trim().isEmpty()) {
return;
}
AnalysisPacientDetails apdRes = (AnalysisPacientDetails) tableVeiwResults.getSelectionModel().getSelectedItem();
apdRes.setAnalysisPacientDetailsRezultat(event.getNewValue());
apdjpa.edit(apdRes);
tableVeiwResults.refresh();
TablePosition pos = tableVeiwResults.getFocusModel().getFocusedCell();
if (pos.getRow() < tableVeiwResults.getItems().size() - 1) {
tableVeiwResults.getSelectionModel().clearAndSelect(pos.getRow() + 1, pos.getTableColumn());
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
});