----------------解决方案--------------------------------------------------------
嗯,你是说setDefaultCloseOperation这个函数吧?还是说不用这个函数就可以实现?
----------------解决方案--------------------------------------------------------
我当然不是说你的那个setDefaultCloseOperation,而是我所指的那个函数.
----------------解决方案--------------------------------------------------------
?那你说来听听啊,还有什么函数可以取消对窗体的关闭?
----------------解决方案--------------------------------------------------------
我说的很清楚了,可惜你两眼昏花,戴个眼镜好像也看不清楚,那我怎么办呢?
----------------解决方案--------------------------------------------------------
算了,看来不给你一段代码看看你是不会明白的。下面是一段DemoCode,自己去看吧。
import javax.swing.*;
import java.awt.event.*;
public class JFrameDemo extends JFrame
{
protected void processWindowEvent(WindowEvent e)
{
if (e.getID() == WindowEvent.WINDOW_CLOSING)
{
int value = JOptionPane.showConfirmDialog(null,
"Really close the window?",
"Really close the window",
JOptionPane.YES_NO_CANCEL_OPTION) ;
switch (value)
{
case JOptionPane.YES_OPTION:
System.exit(0);
case JOptionPane.NO_OPTION:
case JOptionPane.CANCEL_OPTION:
default:
// cancel
return ;
}
}
}
public JFrameDemo()
{
super("JFrameDemo");
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String [] args)
{
JFrameDemo jframeDemo = new JFrameDemo();
jframeDemo.setSize(400,300);
jframeDemo.setVisible(true);
}
}
本来是想发给你们我写的一个Project 的代码的,不过现在决定不发给你们了,你们太没有眼福了。
一般来讲,当用户点击关闭按钮后,应该显示提醒用户是否 save 的对话框的。
提示就到这里了,再不明白,我也无能为力了。
----------------解决方案--------------------------------------------------------
你用的是提示用户的机制关闭窗体的。
你的代码可以理解。想法很好的
----------------解决方案--------------------------------------------------------
哦,明白了耶~原来是processWindowEvent嘎嘎,没看清。不过你这个代码的不完美之处在于需要继承JFrame才能覆盖那个方法。我的那种方法就不用。大家看情况用吧
----------------解决方案--------------------------------------------------------
tempnetbar, 你还是说错了,你的那个setDefaultCloseOperation 是不能达到飘飘叶子的那个要求的。你再仔细看看飘飘叶子的要求吧。还有setDefaultCloseOperation是要设置参数的。正如10楼所说的,通过设置参数 JFrame.DO_NOTHING_ON_CLOSE,你可以实现点击大叉而不关闭程序。而飘飘叶子要的不是这个,他要的是让用户来决定是否关闭程序。通常很多软件都是这么做的,当然不是询问是否关闭,而是询问是否在关闭之前对最后的改动做存储。有3种可供选择,1)yes 按钮,存储文件并关闭程序 2)no 按钮,不存储文件,关闭程序 3)cancel 按钮,什么也不做,也就说,不关闭程序,但也不存储文件。 其次想说的是,你所说的那个所谓不完美之处,恰恰又是你搞错了。我来问你,你那个 setDefaultCloseOperation是在哪个类里?回答是:在JFrame 里,那个JFrame.DO_NOTHING_ON_CLOSE 也是JFrame中的一个常数。还有,任何应用程序难道可以没有一个JFrame 的实体吗?当然是不可以的。所以 在 main 函数中你必须有一个 JFrame的实体,而最简单,最通常的做法就是那个包含main() 的那个public class 定义为继承JFrame.
----------------解决方案--------------------------------------------------------
嘿嘿嘿嘿,那我一会儿也把代码贴上来,我上次就是这么写的,你难道也近视?我没有说只用这个函数啊,当然还要配合其他的东东啦,哇哈哈哈哈
----------------解决方案--------------------------------------------------------