2014-12-05 185 views

回答

7

当然可以。您只需注册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 
    } 
    } 
}); 
+0

我自己想到了这一点,但在调试时我不得不断定KeyCode.DELETE与输入事件不一样。也许是因为我在Linux Mint上运行它? – 2016-12-13 12:22:45

+0

刚发现setOnKeyTyped不起作用;与setOnKeyPressed事件一起工作。使用setOnKeyTyped将返回event.getCode()== KeyCode.UNDEFINED – 2016-12-13 12:29:12