2014-12-05 2 views

답변

7

물론 가능합니다. EventHandler을 등록하고 특정 KeyCode 만 청취하면됩니다. 다음 예제는 TreeTableView에 대한 것이지만 모든 TableView에 적용 할 수 있어야합니다.

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에서 실행하고 있기 때문일 수도 있습니다. –

+0

setOnKeyTyped가 작동하지 않는다는 것을 발견했습니다. setOnKeyPressed 이벤트와 함께 작동합니다. setOnKeyTyped를 사용하면 event.getCode() == KeyCode.UNDEFINED가 반환됩니다. –