如何获取ComboFieldEditor的值?

时间:2012-02-07 04:01:02

标签: java eclipse eclipse-plugin

我在代码中创建了一个ComboFieldEditor,我希望在将其存储到Preference存储之前获取该值。在StringFieldEditor的情况下,有一种方法,如getStringValue()。但是在ComboFieldEditor的情况下,没有这样的方法。所以我怎样才能得到我给出的那些价值并使用它们?

2 个答案:

答案 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());
}
}