HIDE_ON_CLOSE和DISPOSE_ON_CLOSE的区别
我觉得对于一个模式对话框来说,应该是没有区别的。
因为它的关闭不会导致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




