我在关闭是调用
shell.addDisposeListener(new DisposeListener(){
            public void widgetDisposed(DisposeEvent e) {
                if(MessageDialog.openConfirm(null,null,"确定退出系统吗?"))
                {                }else{
                   shell.close();
               }
            }
        });这个方法。不管点“ok”还是“cancel”它都会关闭。请问怎么解决?

解决方案 »

  1.   

    import org.eclipse.swt.*;
    import org.eclipse.swt.widgets.*;public class GoodLuck {public static void main (String [] args) {
    Display display = new Display ();
    final Shell shell = new Shell (display);
    shell.addListener (SWT.Close, new Listener () {
    public void handleEvent (Event event) {
    int style = SWT.APPLICATION_MODAL | SWT.YES | SWT.NO;
    MessageBox messageBox = new MessageBox (shell, style);
    messageBox.setText ("Information");
    messageBox.setMessage ("Close the shell?");
    event.doit = messageBox.open () == SWT.YES;
    }
    });
    shell.pack ();
    shell.open();
    while (!shell.isDisposed ()) {
    if (!display.readAndDispatch ()) display.sleep ();
    }
    display.dispose ();
    }
    }