Java 单击另一个按钮,在SWT中处理SelectionListener

Java 单击另一个按钮,在SWT中处理SelectionListener,java,swt,Java,Swt,我有一个代码,它向SWT外壳添加了四个复选框按钮,我向复选框按钮添加了选择侦听器,我想在单击SWT外壳的“确定”、“取消”和“关闭”按钮时删除这些按钮,我如何处理此类事件,这是我的代码 grpVersionTreeComponents.setLayoutData(componentsRenderer.createGridData(490, 220, 4)); for(int versionCount = 0; versionCount < versionSplitt

我有一个代码,它向SWT外壳添加了四个复选框按钮,我向复选框按钮添加了选择侦听器,我想在单击SWT外壳的“确定”、“取消”和“关闭”按钮时删除这些按钮,我如何处理此类事件,这是我的代码

grpVersionTreeComponents.setLayoutData(componentsRenderer.createGridData(490, 220, 4));
            for(int versionCount = 0; versionCount < versionSplitters.length ; versionCount++ ){
                String splitter= versionSplitters[versionCount];
                Button cbVersionSplitter = new CheckBoxWrapper().getButton(grpVersionTreeComponents,splitter.toString() , "");
                cbVersionSplitter.setEnabled(true);
                versionSplitterCheckBoxList.add(cbVersionSplitter);
                versionSplitterCheckBoxList.get(versionCount).addSelectionListener(addSplitterCheckBoxListner(cbVersionSplitter));

            }
“确定”和“取消”按钮以这种方式添加

private void addOkCancelButtonOnVersionTreePopup(final Shell versionTreeComponentsShell){

        Button ok = componentsRenderer.createButtonWidget(versionTreeComponentsShell, SWT.PUSH,
                PropertyClass.getPropertyLabel(QTLConstants.OK_BUTTON));
        Button cancel = componentsRenderer.createButtonWidget(versionTreeComponentsShell, SWT.PUSH,
                PropertyClass.getPropertyLabel(QTLConstants.CANCEL_BUTTON));
        ok.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {

}
        });
}
cancel.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {          
                /*disposeSelectionListener(cbVersionSplitter);*/
                versionTreeComponentsShell.close();             
            }
        });

    }
}
那么,如何删除此选择侦听器


关于

您可以执行以下操作:

@Override
public boolean equals(Object other) {
   if (other == null) {
      return false;
   }
   if (other instanceof MyOwnSelectionAdapter) {
      return true;
   }
}
1) 。创建将扩展
选择适配器的类

2) 。重写
widgetSelected()
方法,就像您在代码中所做的那样

3) 。使用以下内容覆盖
equals(Object other)
方法:

@Override
public boolean equals(Object other) {
   if (other == null) {
      return false;
   }
   if (other instanceof MyOwnSelectionAdapter) {
      return true;
   }
}
其中
MyOwnSelectionAdapter
是您自己的
SelectionAdapter
实现

4) 。现在您可以执行以下操作:
cancel.removeSelectionListener(新建MyOwnSelectionAdapter())
将删除该选择侦听器