Frame f = new Frame(); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ if (JOptionPane.showConfirmDialog(null,"是否要退出?","提示",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION) f.dispose(); else f.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); } });
看来用 jbuilder 的人不少啊。
可我在属性编辑器里已经选了“DO_NOTHING_ON_CLOSE”了啊
I think the code turn is wrong. Change and try it.Frame f = new Frame(); f.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ if (JOptionPane.showConfirmDialog(null,"是否要退出?","提示",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION) f.dispose(); else //f.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); //other operations. } });
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
//处理弹出Dialog框,yes,执行System.exit(0);
}
});
import java.awt.event.*;
import javax.swing.*;public class DFrame extends Frame
{
public DFrame()
{
setSize(300,300);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
close();
}
});
show();
}
public void close()
{
Object[] options = { "OK", "CANCEL" };
if(JOptionPane.showOptionDialog(null, "Click OK to Close", "Warning",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,
null, options, options[0])==0)
{
System.exit(0);
}
}
public static void main(String args[])
{
new DFrame();
}
}
<a href="javascript:window.close()">关闭窗口</a>
就像这个页面右下角的“返回问题 | 关闭窗口”两个按钮。
可以么?
我照写,一样会关的。:(
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
if (JOptionPane.showConfirmDialog(null,"是否要退出?","提示",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION)
f.dispose();
else
f.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
}
});
f.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
if (JOptionPane.showConfirmDialog(null,"是否要退出?","提示",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION)
f.dispose();
else
//f.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
//other operations.
}
});