0

让我试着更好地解释我在说什么。

主 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()

4

1 回答 1

1

Dialog.public boolean close()完成打印调用后调用。

于 2012-10-01T17:06:38.247 回答