CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  GUI 设计

HIDE_ON_CLOSE和DISPOSE_ON_CLOSE的区别

楼主ymgc(ymgc)2006-04-02 18:24:09 在 Java / GUI 设计 提问

我觉得对于一个模式对话框来说,应该是没有区别的。  
  因为它的关闭不会导致vm的终结。  
  各位爷说呢?  
  问题点数:10、回复次数:5Top

1 楼yun19()回复于 2006-04-02 19:04:35 得分 0

前者好象只是简单的隐藏,还驻留在内存里面  
  后者会释放内存  
  呵呵...  
  个人的见解Top

2 楼ymgc(ymgc)回复于 2006-04-02 20:22:06 得分 0

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

3 楼use2100(chufan)回复于 2006-04-03 01:13:32 得分 0

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

4 楼voxer(voxer)回复于 2006-04-03 09:29:54 得分 0

你可以写一个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;  
          }  
  }Top

5 楼use2100(chufan)回复于 2006-04-08 19:10:06 得分 0

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进程。请教Top

相关问题

关键词

得分解答快速导航

  • 帖主:ymgc

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo