首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaFX/Controlsfx --如何监视PropertySheet中的项更改?

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

Stack Overflow用户
提问于 2017-03-19 03:24:59
回答 1查看 694关注 0票数 1

是否有一种方式来监控资产负债表项目的状态?就像textfield变得集中,布尔状态改变,等等。

我查过javadoc,没找到。

这里有一个问题,但是解决方案似乎让编辑器知道属性的变化。

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

有人能帮忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-23 07:46:51

来自PropertySheet:

代码语言:javascript
复制
/**
 * 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的回调,则可以将侦听器添加到编辑器中。

例如:

代码语言:javascript
复制
    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;
    };
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42882573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档