让我试着更好地解释我在说什么。
主 GUI 有一个按钮,单击该按钮会打开对话框 A 对话框 A 的 OK 按钮在主 GUI 中运行一个方法
public void widgetSelected(SelectionEvent e) {
baseDialog.startPrintOperation();
}
当baseDialog.startPrintOperation()
方法完成时,我希望对话框 A 关闭。
如何从不同类中的方法关闭对话框 A?
编辑
这是对话框 A 中的 okButton
okButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
getPlotterSelection();
getSpinnerValue();
Runnable r = new Runnable() {
public void run() {
baseDialog.startPrintOperation();
}
};
if(Display.getCurrent() != null) {
r.run();
}
else {
Display.getDefault().asyncExec(r);
}
}
});
这里是printOperation方法中需要关闭Dialog A的部分。这个方法在MAIN GUI类中
finally {
plotOp.removeOperationListener(this);
plotOp = null;
Display.getDefault().asyncExec(new Runnable() {
public void run() {
removeAllTableRows();
plotRequestCompleted = true;
THIS is where I want to close Dialog A;
}
});
}
}
});
session.queueOperation(plotOp);
} // 结束 startPrintOperation()