JavaFX tableView编辑触发KeyPress事件

时间:2015-06-12 10:00:32

标签: javafx tableview keypress eventhandler

我有一个JavaFX应用程序正在侦听" primaryStage"上的一些KeyPress事件。这是包含大多数应用程序节点的Group()节点。 像这样:

EventHandler kappa = new EventHandler<KeyEvent>(){
    public void handle(KeyEvent e){
        String kc = e.getCode().toString();
            if (kc == "ESCAPE") {
               primaryStage.close(); 
            }
            f.keyHandler(kc, med.getValue(), rateText, statusText); 
    }
};
primaryStage.addEventFilter(KeyEvent.KEY_PRESSED,kappa);` 

我也有一个包含一些数据的TableView节点。

我希望我的TableView可以编辑,这很容易实现,但是当我尝试编辑表格单元格时,我按下键入文本的键会触发上述KeyPress事件。

一个简单的解决方案是不将keypress事件分配给primaryStage,但我需要这样做。

我尝试在可编辑的表格单元格中使用setOnEditStart,我想删除按键处理程序,然后在seOnEditCommit上重新绑定它。 我不确定这是否是一个好策略。关于如何做到这一点的任何想法?

编辑:也许某种方式将keypress事件绑定到primaryStage中除TableView节点以外的所有节点?

1 个答案:

答案 0 :(得分:0)

如果我理解正确你需要做的就是在TableView上触发事件时使用它。

TableView myTableVeiw;
myTableView.setOnKeyPressed(e->{e.consume;});

希望有所帮助:)