Eclipse首选项 - 单选按钮中的多个侦听器

时间:2015-10-15 15:12:05

标签: eclipse eclipse-plugin jface

这是我用来创建自定义首选项页面的类。

public class CustomPref extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {

public CustomPref(){
    super(GRID);
}

@Override
protected void createFieldEditors() {
    addField(new RadioGroupFieldEditor("CHOICE",
            "An example of a multiple-choice preference", 1,
            new String[][] { { "&Choice 1", "choice1" },{ "&Choice 2", "choice2" }
                 }, getFieldEditorParent()));


}

@Override
public void init(IWorkbench workbench) {

}


@Override
public void propertyChange(PropertyChangeEvent event) {
    super.propertyChange(event);
    System.out.println(event.getNewValue());

}

}

但当我按下"选择1"在日志中我看到choice1。 当我按下"选择2"在日志中我看到choice1和choice2。 当我按下"选择1"再次在日志中我看到choice2和choice1。

似乎单选按钮有一个多事件监听器。为什么event.getNewValue()调用了两次?

1 个答案:

答案 0 :(得分:0)

RadioGroupFieldEditor使用无线电样式创建了许多Button控件,并为每个按钮添加了一个选择侦听器。

当您单击其中一个单选按钮时,将针对不再选择的按钮触发选择事件,并为已选中的按钮触发另一个事件。所以你得到两个事件 - 一个用于取消选择,一个用于选择。