![](/img/trans.png)
[英]How to disable sound when I press ALT+ ENTER in javafx.scene.control.TextArea?
[英]JavaFX: Enable edit column in a tableview when I press enter
我有一個帶有可編輯列的表格視圖,該列名為“ monto”,在單擊鼠標進行編輯時效果很好,但是當我按下“ enter”時,我需要啟用編輯功能。
private TableView<Personal> myTable;
private TableColumn<Personal,Double> columnaMonto;
... //Code when user edit with the mouse
columnaMonto.setOnEditCommit(
new EventHandler<TableColumn.CellEditEvent<Personal, Double>>() {
@Override
public void handle(TableColumn.CellEditEvent<Personal, Double> event) {
int pos = event.getTablePosition().getRow();
((Personal)event.getTableView().getItems().get(
event.getTablePosition().getRow())
).setImporte(event.getNewValue());
myTable.requestFocus();
myTable.getSelectionModel().select(pos + 1);
myTable.getFocusModel();
}
}
);
這是我的嘗試:
myTable.setOnKeyReleased(evt -> {
if (evt.getCode() == KeyCode.ENTER) {
System.out.println("Enter is OK!!");
TablePosition focusedCellPosition = myTable.getFocusModel().getFocusedCell();
System.out.println(focusedCellPosition.getRow());
myTable.requestFocus();
myTable.edit(focusedCellPosition.getRow(), columnaMonto);
}
});
問題是總是選擇編輯(例如雙擊),並且只有在用戶按Enter時才需要它。 另一個問題是滾動條無法正常工作在同一位置。 示例圖
感謝和抱歉對我來說很難用英語解釋。
myTable.addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
if( event.getCode() == KeyCode.ENTER) {
return;
}
// switch to edit mode on keypress, but only if we aren't already in edit mode
if( myTable.getEditingCell() == null) {
if( event.getCode().isLetterKey() || event.getCode().isDigitKey()) {
TablePosition focusedCellPosition = myTable.getFocusModel().getFocusedCell();
myTable.edit(focusedCellPosition.getRow(), focusedCellPosition.getTableColumn());
}
}
}
});
該代碼在按字母鍵或數字鍵時效果很好。 您的單元格將被編輯。 對於輸入鍵,您可以編寫條件或邏輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.