如何在TextArea中点击Tab键导航到下一个控件?
我可以添加一个监听器到cath de键按下事件,但是如何使TextArea控件失去焦点(不知道链中的下一个字段要集中)?
@FXML protected void handleTabKeyTextArea(KeyEvent event) {
if (event.getCode() == KeyCode.TAB) {
...
}
}
解决方法
如果按TAB键,则此代码遍历焦点,如果按CONTROL TAB键插入标签
textArea.addEventFilter(KeyEvent.KEY_pressed,new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
if (event.getCode() == KeyCode.TAB) {
SkinBase skin = (SkinBase) textArea.getSkin();
if (skin.getBehavior() instanceof TextAreaBehavior) {
TextAreaBehavior behavior = (TextAreaBehavior) skin.getBehavior();
if (event.isControlDown()) {
behavior.callAction("InsertTab");
} else {
behavior.callAction("TraverseNext");
}
event.consume();
}
}
}
});