用删除键删除JavaFX表行
答
当然可以。您只需注册EventHandler并收听特定的KeyCode。以下示例适用于TreeTableView,但应适用于所有TableViews。
treeTableView.setOnKeyPressed(new EventHandler<KeyEvent>()
{
@Override
public void handle(final KeyEvent keyEvent)
{
final TreeItem<YourObject> selectedItem = treeTableView.getSelectionModel().getSelectedItem();
if (selectedItem != null)
{
if (keyEvent.getCode().equals(KeyCode.DELETE))
{
//Delete or whatever you like:
presenter.onEntityDeleteAction(selectedItem);
}
//... other keyevents
}
}
});
我自己想到了这一点,但在调试时我不得不断定KeyCode.DELETE与输入事件不一样。也许是因为我在Linux Mint上运行它? – 2016-12-13 12:22:45
刚发现setOnKeyTyped不起作用;与setOnKeyPressed事件一起工作。使用setOnKeyTyped将返回event.getCode()== KeyCode.UNDEFINED – 2016-12-13 12:29:12