高手大哥。 Eclipse 用swing 要呈现 点击叉叉关闭出现 是,否 的对话框 如何实现呀?求指点

2025-03-09 13:38:59
推荐回答(2个)
回答1:

1、Swing里的Box就没有Box();这样不带参数的构造方法。
2、一般你所说的可以点的叉都是JFrame里windows自带的,而不是Box。就一个Box对象没办法显示的。其关系是:JFrame里添加JPanel再添加Box。
参考:http://wangyu.javaeye.com/blog/285467
3、当然也可以放一张图片上去自己做一个按钮,添加你所说的响应,把windows自带的按钮用getRootPane().setWindowDecorationStyle(JRootPane.NONE);屏蔽掉。
import java.awt.EventQueue;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class ConfirmCloseWindow extends JFrame {

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
new ConfirmCloseWindow();
}
});
}

public ConfirmCloseWindow() {
try {
setTitle("退出确认");
setSize(this.getToolkit().getScreenSize());
setResizable(false);
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

this.addWindowListener(new WindowAdapter() {
public void windowClosing(final WindowEvent p_e) {
// 当窗口关闭时弹出确定框进行确定
int t_option = JOptionPane.showConfirmDialog(ConfirmCloseWindow.this,
"确定退出系统?", "提示", JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (t_option == JOptionPane.YES_OPTION) {
System.exit(0);
}
}
});
this.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
}

回答2:

不要那句setDefaultCloseOperation了。
把你的窗体添加WindowAdapter的监听就可以了