gpt4 book ai didi

java - 在 SWT 中单击另一个按钮时处置 SelectionListener

转载 作者:行者123 更新时间:2023-12-01 04:54:12 25 4
gpt4 key购买 nike

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

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));

}

这是我选择的适配器方法

public SelectionAdapter addSplitterCheckBoxListner(final Button button){
return new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {


String[] defaultVersionSplitters = PropertyClass.getPropertyLabel(QTLConstants.VERSIONING_ASSISTENT_PAGE_SPLLITER).split(QTLConstants.MULTIPLE_EXTENSIONS_SPLITER);
//check if button.getText() is equal to "Custom Splitter" String
if(button.getText().equalsIgnoreCase(defaultVersionSplitters[3])){
if(button.getSelection()){
customVersionSplitterText.setEnabled(true);
}else{
customVersionSplitterText.setEnabled(false);
}

}


}

};
}

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

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

}
}

那么我如何删除这个选择监听器

问候

最佳答案

您可以执行以下操作:

1).创建将扩展 SelectionAdapter 类的类。

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(new MyOwnSelectionAdapter());,它将删除该选择监听器。

关于java - 在 SWT 中单击另一个按钮时处置 SelectionListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14435837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com