我陷入了从枚举到RadioButton的绑定值。可以说我有一个豆子:
public class ValueObject {
public enum ValueEnum {
FIRST_VALUE,
SECOND_VALUE
}
protected ValueEnum value;
}
我想创建Swing RadioButtons,用户可以从这两个枚举值中选择一个。当我使用Netbeans作为IDE时,我也想使用数据绑定来做,即。将单选按钮绑定到{valueObject.value}。有任何想法吗?非常感谢!
答案 0 :(得分:1)
哇,转换器是个好主意!我在下面创建了转换器并使用枚举值初始化它。
public class ObjectEqualityConverter extends Converter {
private Object o;
public ObjectEqualityConverter() {}
public ObjectEqualityConverter(Object o) {
this.o = o;
}
public Object convertForward(Object value) {
return (o != null && o.equals(value)) ? Boolean.TRUE : Boolean.FALSE;
}
public Object convertReverse(Object value) {
return (Boolean.TRUE.equals(value)) ? o : null;
}
}
答案 1 :(得分:0)
我会说它不起作用。通常,您在窗口小部件和变量之间创建绑定。您的窗口小部件是一个双状态单选按钮,因此您可以将其绑定到布尔变量。作为绑定的结果,如果按下按钮,布尔变量将变为true,如果取消选择该按钮,则布尔变量将返回false。
使用JFace数据绑定,您将实现一个转换器,它将在布尔值和两个枚举值之间进行转换。该转换器将成为数据绑定的一部分(您可以添加验证器和转换器)。遗憾的是我还没有使用Swing或netbeans,但方法应该类似:你要么在转换中添加转换器,要么必须绑定到布尔变量并在之后进行转换(映射)。