java如何将属性(例如枚举)绑定到不同类型的组件属性(例如每个枚举的映像)?
我继承了一个使用JGoodies绑定将域模型连接到GUI的项目。然而,我发现了一些不一致的地方,这也导致了一些错误
在这个具体的例子中,GUI由两个单选按钮和一个标签表示。根据选择的按钮,标签应显示特定图像。按钮绑定到不同的枚举值,如下所示:
AbstractValueModel enumSelectionModel = presentationModel.getModel("selection");
radioBtn1 = BasicComponentFactory.createRadioButton(enumSelectionModel,
Selection.selection1, "");
radioBtn2 = BasicComponentFactory.createRadioButton(enumSelectionModel,
Selection.selection2, "");
"selection"
是绑定属性,Selection
是枚举,这意味着当更改其他按钮时,模型中的selection
属性将设置为相应的枚举值
我的问题是:如何将此属性绑定到标签显示的图像强>
据我所见,JGoodies非常适合将字符串绑定到文本字段,但在本例中,还应该有一个转换,一些逻辑决定将enum属性映射到图像
# 1 楼答案
看起来我只是需要仔细看看绑定API。一个
AbstractConverter
正是我想要的方法将pictureLabel的图标绑定到转换器描述的模型。转换器如下所示:
convertFromSubject
方法是完成从Enum到image的转换的地方。我没有实现setValue
,因为在这种情况下它没有意义。图像本身无法更改,我只希望更新以单向方式进行——从enum属性到图像