javafx2.0 修改控件默认鼠标键盘监听

 

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

 

 

 

 

你可能感兴趣的:(java,GUI,JavaFX,javafx2.0)