1

我正在创建一个PropertySheet并且我想Property在工作表中添加一个。问题是,如果属性的值发生变化会发生什么,PropertySheet需要更新以反映这些变化。我该怎么做?

import java.util.Map;

import javafx.beans.property.Property;

import org.controlsfx.control.PropertySheet;

public class PropertyItem implements PropertySheet.Item {
    private Map<String, Property> map;
    private String key;
    private String name;
    private String description;

    PropertyItem(Map<String, Property> map, String key, String name, String description){
        this.map = map;
        this.key = key;
        this.name = name;
        this.description = description;
    }
    @Override
    public String getCategory() {
        return null;
    }

    @Override
    public String getDescription() {
        return description;
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public Class<?> getType() {
        return map.get(key).getValue().getClass();
    }

    @Override
    public Object getValue() {
        return map.get(key).getValue();
    }

    @Override
    public void setValue(Object arg0) {
        map.get(key).setValue(arg0);
    }
}
4

1 回答 1

0

这可能为时已晚,但无论如何......

属性编辑器使用 PropetySheet.Item 接口中的以下方法来侦听值更改。

optional<ObservableValue<? extends Object>> getObservableValue();

您需要在 PropertyItem 类上实现此方法。

于 2016-04-08T11:31:39.427 回答