如何在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(); } } } });