在 Java 中将枚举值绑定到 RadioButton
我陷入了从枚举到单选按钮的绑定值的困境。假设我有一个 bean:
public class ValueObject {
public enum ValueEnum {
FIRST_VALUE,
SECOND_VALUE
}
protected ValueEnum value;
}
我想创建 Swing RadioButtons,用户可以从这两个枚举值中选择一个。当我使用 Netbeans 作为 IDE 时,我还想使用数据绑定来完成它,即。将单选按钮绑定到 {valueObject.value}。有什么想法吗?多谢!
I am stuck in binding values from enum to RadioButton. Lets say I have a bean:
public class ValueObject {
public enum ValueEnum {
FIRST_VALUE,
SECOND_VALUE
}
protected ValueEnum value;
}
I want to create Swing RadioButtons where user can select one from these two enum values. As I use Netbeans as IDE I would also like to do it using data binding, ie. bind radio buttons to {valueObject.value}. Any ideas? Thanks a lot!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
哇,转换器是个好主意!我创建了下面的转换器并使用枚举值对其进行初始化。
Whow, the converter was a great idea! I created the converter below and initialized it with the enum value.
我想说这不会起作用。通常您会在小部件和变量之间创建绑定。您的小部件是一个两种状态的单选按钮,因此您可以将其绑定到一个布尔变量。由于该绑定,如果按下按钮,布尔变量将更改为 true,如果取消选择按钮,布尔变量将返回到 false。
使用 JFace 数据绑定,您可以实现一个转换器,它可以在布尔值和两个枚举值之间进行转换。该转换器将是数据绑定的一部分(您可以添加验证器和转换器)。不幸的是,我还没有使用 Swing 或 netbeans 完成此操作,但方法应该类似:您要么向绑定添加转换器,要么必须绑定到布尔变量并随后进行转换(映射)。
I'd say it won't work. Usually you create a binding between widget and a variable. Your widget is a two state radio button, so you would bind it to a boolean variable. As a result of that binding, if you press the button, the boolean variable changes to true, if the button becomes deselected, the boolean variable goes back to false.
With JFace databinding you would implement a converter, that would convert between boolean and the two enum values. That converter would be part of the databinding (you can add validators and converters). Unfortunatly I haven't done it with Swing or netbeans, but the approach should be similar: you either add a converter to the binding or you have to bind to a boolean variable and do the conversion (mapping) afterwards.