Javafx Scene.cursorProperty()如何绑定或添加侦听器
我想知道如何从场景对象添加侦听器或绑定cursorProperty()方法。我试图通过当前光标类型调整场景大小时进行检测。这不是最干净的方法,但它帮助我了解发生了什么:Javafx Scene.cursorProperty()如何绑定或添加侦听器,javafx,scene,Javafx,Scene,我想知道如何从场景对象添加侦听器或绑定cursorProperty()方法。我试图通过当前光标类型调整场景大小时进行检测。这不是最干净的方法,但它帮助我了解发生了什么: @Override public void start(final Stage stage) { // .. initialize scene addCursorChangeListeners(mainPane); scene.cursorProperty().addListener(new Chan
@Override
public void start(final Stage stage) {
// .. initialize scene
addCursorChangeListeners(mainPane);
scene.cursorProperty().addListener(new ChangeListener<Cursor>() {
@Override
public void changed(final ObservableValue<? extends Cursor> observable, final Cursor oldValue, final Cursor newValue) {
LOGGER.info("Cursor changed for " + scene + " from: " + oldValue + " to: " + newValue);
}
});
}
private void addCursorChangeListeners(final Parent parent) {
for (final Node child : parent.getChildrenUnmodifiable()) {
child.cursorProperty().addListener(new ChangeListener<Cursor>() {
@Override
public void changed(final ObservableValue<? extends Cursor> observable, final Cursor oldValue, final Cursor newValue) {
LOGGER.info("Cursor changed for " + child + " from: " + oldValue + " to: " + newValue);
}
});
if (child instanceof Parent) {
addCursorChangeListeners((Parent) child);
}
}
}
@覆盖
公共作废开始(最后阶段){
//…初始化场景
addCursorChangeListeners(主窗格);
scene.cursorProperty().addListener(新的ChangeListener()){
@凌驾
public void changed(最终版本)我也在研究类似的问题,你找到解决方案了吗?