这是我用来创建自定义首选项页面的类。
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()调用了两次?
答案 0 :(得分:0)
RadioGroupFieldEditor
使用无线电样式创建了许多Button
控件,并为每个按钮添加了一个选择侦听器。
当您单击其中一个单选按钮时,将针对不再选择的按钮触发选择事件,并为已选中的按钮触发另一个事件。所以你得到两个事件 - 一个用于取消选择,一个用于选择。