我有一个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节点以外的所有节点?
答案 0 :(得分:0)
如果我理解正确你需要做的就是在TableView上触发事件时使用它。
TableView myTableVeiw;
myTableView.setOnKeyPressed(e->{e.consume;});
希望有所帮助:)