?
JFX为所有空间提供了默认的鼠标键盘监听,以符合一般使用习惯. 比如表格/列表/树等控件中可以使用方向键选择表单元,空格/回车/F2开始编辑. 但有时候我们需要自定义的键盘监听来适合自己的需要, 比如在表中按下回车将自动提交编辑并移到右边单元.
?
屏蔽控件的默认鼠标键盘监听, 可以通过添加一个事件过滤器(EventFilter)来实现.下面的例子实现了屏蔽TableView的Enter键默认监听, 并在Enter键按下时选择表格的右边单元.
?
?
table.addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() { @Override public void handle(KeyEvent e) { // e.consume(); //blocks all key bingdings table.requestFocus(); KeyCode code =e.getCode(); if(code == KeyCode.ENTER){ try { // your code here new Robot().keyPress(java.awt.event.KeyEvent.VK_RIGHT);//XXX javafx has no robot for key type... } catch (Exception e1) { } e.consume(); } } });?
?
?
?
?
事件过虑参考阅读:
http://docs.oracle.com/javafx/2.0/api/javafx/scene/Node.html#addEventFilter%28javafx.event.EventType,%20javafx.event.EventHandler%29
http://docs.oracle.com/javafx/2.0/events/jfxpub-events.htm
?
?
?
?