将枚举值绑定到Java中的单选按钮

时间:2010-01-06 12:31:39

标签: java swing data-binding radio-button

我陷入了从枚举到RadioButton的绑定值。可以说我有一个豆子:

public class ValueObject {
  public enum ValueEnum {
    FIRST_VALUE,
    SECOND_VALUE
  }

  protected ValueEnum value;
}

我想创建Swing RadioButtons,用户可以从这两个枚举值中选择一个。当我使用Netbeans作为IDE时,我也想使用数据绑定来做,即。将单选按钮绑定到{valueObject.value}。有任何想法吗?非常感谢!

2 个答案:

答案 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,但方法应该类似:你要么在转换中添加转换器,要么必须绑定到布尔变量并在之后进行转换(映射)。