我在代码中创建了一个ComboFieldEditor
,我希望在将其存储到Preference存储之前获取该值。在StringFieldEditor
的情况下,有一种方法,如getStringValue()
。但是在ComboFieldEditor
的情况下,没有这样的方法。所以我怎样才能得到我给出的那些价值并使用它们?
答案 0 :(得分:2)
combofieldeditor.setPropertyChangeListener(new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
System.out.print(event.getNewValue());
}
});
getNewValue将为您提供用户选择的值。或者,您可以从首选项存储中调用存储和读取。
答案 1 :(得分:2)
@codejammer - 你的(第一个)解决方案因某些原因对我不起作用(很可能是因为FieldEditorPreferencePage将自己设置为监听器)。
所以我的解决方案是,如果您的首选项页面类扩展了FieldEditorPreferencePage,您可以覆盖propertyChange函数(不要忘记从超类执行此函数)。在propertyChange中,我可以检查哪个字段来自事件(PropertyChangeEvent.getSource()),然后获取新值(PropertyChangeEvent.getNewValue())。
@Override
public void propertyChange(PropertyChangeEvent event) {
super.propertyChange(event);
if(event.getSource() == myCombo){
//do your stuff here, or store new value in variable
System.out.println(event.getNewValue());
}
}