我觉得对于一个模式对话框来说,应该是没有区别的。
因为它的关闭不会导致vm的终结。
各位爷说呢?

解决方案 »

  1.   

    同意。
    而且DISPOSE_ON_CLOSE的一个结果就是:如果它是“最后一个显示的窗口”,它的DISPOSE会导致vm的终结。而模式对话框肯定不是“最后一个显示的窗口”,所以两者仅仅有是否释放内存的区别,对其它功能没有任何影响。
    对否?
      

  2.   

    想问一下,在按下frame(只有一个frame)的关闭键后我想弹出一个确认用的JOptionPane如果选择否,则不退出应该怎么做(不关闭该frame),我用过继承windowAdapter 中windowClosing后,加入joptionpane,但收到cancle和no的消息后,frame仍旧关闭,但是系统中仍存在一个多出来的javaw.exe进程.不解,请教。
      

  3.   

    你可以写一个frame extends JFrame implements WindowListener 
    重写windowClosing方法public void windowClosing(java.awt.event.WindowEvent windowevent) {
        int result = JOptionPane.showConfirmDialog(
             frame,"确定退出系统?","提示",JOptionPane.YES_NO_OPTION);
       if(result==JOptionPane.YES_OPTION){
        if (windowevent.getWindow() == this) {
          System.exit(0);
        }
        }else{
          return;
        }
    }
      

  4.   

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
     public class comFrame extends JFrame implements WindowListener
    {
    comFrame()
    {
    Toolkit kit=Toolkit.getDefaultToolkit();
    Dimension d=kit.getScreenSize();
    this.setSize((int)d.getWidth()/2,(int)d.getHeight()/2);
    this.setLocation((int)d.getWidth()/4,(int)d.getHeight()/4);
    //this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.addWindowListener(this);
    this.setVisible(true);
    }

      public void windowOpened(WindowEvent e) {}
      
      public void windowClosing(WindowEvent e)
      {
       int option= JOptionPane.showConfirmDialog(
                this,"确定退出系统?","提示",JOptionPane.YES_NO_CANCEL_OPTION);
        if(option==JOptionPane.YES_OPTION)
           if(e.getWindow() == this)
           {
            System.exit(0);
           }
           else
            {
            return;
           
            }
      }
      
      public void windowClosed(WindowEvent e) {}
      
      public void windowIconified(WindowEvent e) {}
      
      public void windowActivated(WindowEvent e) {}
      
      public void windowDeactivated(WindowEvent e) {}
      
      public void windowDeiconified(WindowEvent e) {}   public static void main(String[] args)
    {
    comFrame aFrame=new comFrame();
    }

    }在按下frame(只有一个frame)的关闭键后我想弹出一个确认用的JOptionPane如果选择否,则不退出应该怎么做(不关闭该frame)。但以上代码在SDK1.5中测试,收到cancle和no的消息后,frame仍旧关闭,但是系统中仍存在一个多出来的javaw.exe进程。请教