我创建了一个窗口 new Shell(SWT.MIN | SWT.TITLE | SWT.BORDER | SWT.MAX);
参数里没有设置关闭按钮的,但还是出现了,并且没有灰化。我如何才能灰化这个关闭按钮?如果不能灰化,我如何才能获得关闭的消息?因为我想在关闭的时候让用户输入密码。谢谢!

解决方案 »

  1.   

    做一个监听器        class MyWindowAdapter extends WindowAdapter {
                public void windowClosing(WindowEvent e) {
                       //嘿嘿,有人在关窗口~
                }
            }
      

  2.   

    谢谢!我通过创建一个ShellListener,捕获到关闭消息,但是我要根据close中的逻辑判断来确定是否需要真的关闭。现在接受到close消息之后,会直接关闭,那我该怎么做呢?
    class MyShellListener implements ShellListener {
    public void shellActivated(ShellEvent arg0) {
    // TODO Auto-generated method stub

    } public void shellClosed(ShellEvent arg0) {
    // TODO Auto-generated method stub
    System.out.println("close window");

    } public void shellDeactivated(ShellEvent arg0) {
    // TODO Auto-generated method stub

    } public void shellDeiconified(ShellEvent arg0) {
    // TODO Auto-generated method stub

    } public void shellIconified(ShellEvent arg0) {
    // TODO Auto-generated method stub

    }

         };
        shell.addShellListener( new MyShellListener());
      

  3.   

    多谢大家,问题解决了,通过将ShellEvent arg0.doit设为false,即可将消息失效。