gpt4 book ai didi

JavaFX/Controlsfx - 如何监视 PropertySheet 中的项目更改?

转载 作者:行者123 更新时间:2023-11-30 06:50:34 33 4
gpt4 key购买 nike

是否有一种方便的方法来监视属性表项状态?例如文本字段获得焦点、 boolean 状态更改等。

我查看了 javadoc,没有找到。

还有一个issue这里,但解决方案似乎让编辑知道了一个属性的变化。

我想要的恰恰相反,监控编辑器。

有人可以帮忙吗?

最佳答案

来自属性表:

/**
* Sets a new editor factory used by the PropertySheet to determine which
* {@link PropertyEditor} to use for a given {@link Item}.
* @param factory
*/
public final void setPropertyEditorFactory( Callback<Item, PropertyEditor<?>> factory ) {
propertyEditorFactory.set( factory == null? new DefaultPropertyEditorFactory(): factory );
}

如果您创建对 PropertyEditor 的回调,则可以向编辑器添加监听器。

例如:

    SimpleObjectProperty<Callback<PropertySheet.Item, PropertyEditor<?>>> propertyEditorFactory = new SimpleObjectProperty<>(this, "propertyEditor", new DefaultPropertyEditorFactory());
projectSheet.setPropertyEditorFactory(getItemPropertyEditorCallback(propertyEditorFactory));



private Callback<PropertySheet.Item, PropertyEditor<?>> getItemPropertyEditorCallback(SimpleObjectProperty<Callback<PropertySheet.Item, PropertyEditor<?>>> propertyEditorFactory) {
return param -> {
PropertyEditor<?> editor = propertyEditorFactory.get().call(param);

//Add listeners to editor
editor.getEditor().focusedProperty().addListener((observable, oldValue, newValue) -> System.out.println(newValue));

return editor;
};
}

关于JavaFX/Controlsfx - 如何监视 PropertySheet 中的项目更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42882573/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com