是否有JavaFX的重点处理程序(Is there a focus handler in javaf

2019-10-18 09:59发布

在挥杆FocusManager,然后可以得到通知,如果焦点更改。

FocusManager.getCurrentManager().addPropertyChangeListener (...)

是否有JavaFX的模拟方式,如果焦点场景图中的变化得到通知?

Answer 1:

有没有还,但你可以尝试手动目标节点的focusedProperties循环之中

private void handleFocusChangesStartingFromParentNode(Parent parentNode) {

    for (Node node : parentNode.getChildrenUnmodifiable()) {
        node.focusedProperty().addListener(new ChangeListener<Boolean>() {
            @Override
            public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
                performHandling();
            }
        });
        try{
            handleFocusChangesStartingFromNode((Parent)node);
        }catch(ClassCastException e){
        }
    }
}


Answer 2:

您可以将添加ChangeListenerfocusOwner一个物业Scene现在:

scene.focusOwnerProperty().addChangeListener(...)


文章来源: Is there a focus handler in javafx