1
在swing中,如果焦點更改,可以通過FocusManager獲得通知。javafx中是否有焦點處理程序
FocusManager.getCurrentManager().addPropertyChangeListener (...)
如果場景圖中的焦點發生變化,javafx中是否有類似的方法來獲得通知?
在swing中,如果焦點更改,可以通過FocusManager獲得通知。javafx中是否有焦點處理程序
FocusManager.getCurrentManager().addPropertyChangeListener (...)
如果場景圖中的焦點發生變化,javafx中是否有類似的方法來獲得通知?
有沒有還,但你可以嘗試手動目標節點的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){
}
}
}
您可以添加ChangeListener
到現在Scene
的focusOwner
屬性:
scene.focusOwnerProperty().addChangeListener(...)