想让窗口被关闭时弹出确认对话框,应该怎样操作? 如题,比如点击右上方的红叉按钮时,想弹出个对话框让用户确认是否真的退出。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.awt.*;import java.awt.event.*;class MyFrame extends Frame { boolean w; public MyFrame() { setTitle("test"); setSize(300, 200); Panel panel = new Panel(); add(panel); addWindowListener(new MyWindowAdapter()); } private class MyWindowAdapter extends WindowAdapter{ public void windowClosing(WindowEvent wevent){//实现窗口关闭 弹出个对话框 }}}public class MyAdapterDemo{public static void main(String[] args) { MyFrame frm = new MyFrame(); frm.show();}} 谢谢!但我要是想通过在JButton里添加actionListener的方式来关闭窗口的话,怎样才能产生这个WindowEvent呢?比如button.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { //怎样在这里写关闭窗口的代码才能弹出确认对话框? } }); 还有,我用这种方法,用showConfirmDialog来显示出一个确认对话框,但是不管点Yes或No或Cancel它都会退出!应该怎么办才能让它不这样呢? 如果是你自定义的按钮,那么点击了是不好产生WindowEvent事件的。但你为什么一定要产生WindowEvent事件呢。button.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { //这里就是你点击了那个按钮之后的代码了。你点击了这个按钮,就是要关闭窗口,在这之前就是要弹出个确认对话框呗! // showComfirmMessageDialog(不一定是这个,你看下API) //然后if() window.close();else 什么都不做。不就ok了。 } }); import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;/** * @author bzwm * */public class ConfirmClose extends JFrame{ public ConfirmClose(){ super(); JButton b = new JButton("Exit"); b.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { buttonClick(); } }); this.add(b); this.setSize(300, 300); this.setVisible(true); } void buttonClick(){ int flg = javax.swing.JOptionPane.showConfirmDialog(null, "close?"); if(flg == 0){ this.setVisible(false); } } public static void main(String args[]){ new ConfirmClose(); }}试试这个 请问如下if语句中的条件代如何简化? 菜鸟求救GUI 初学者求教 请教关于Swing的问题!! 关于图象处理的问题 请指教,不甚感激~~ sdk新问题? java.lang.NoSuchMethodError: 错误郁闷好几天了,不知道怎么解决!会帮帮我吧! ResultSet作为形参传送的问题,在线等待 有关格式转换问题?? 图片处理的问题!给分!一定的! 回车事件没有反应,是什么问题 根据属性字段取值的问题
import java.awt.*;
import java.awt.event.*;
class MyFrame extends Frame {
boolean w;
public MyFrame() {
setTitle("test");
setSize(300, 200);
Panel panel = new Panel();
add(panel);
addWindowListener(new MyWindowAdapter());
}
private class MyWindowAdapter extends WindowAdapter{
public void windowClosing(WindowEvent wevent){//实现窗口关闭
弹出个对话框
}
}
}public class MyAdapterDemo{
public static void main(String[] args) {
MyFrame frm = new MyFrame();
frm.show();
}
}
谢谢!但我要是想通过在JButton里添加actionListener的方式来关闭窗口的话,怎样才能产生这个WindowEvent呢?
比如
button.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//怎样在这里写关闭窗口的代码才能弹出确认对话框?
}
});
还有,我用这种方法,用showConfirmDialog来显示出一个确认对话框,但是不管点Yes或No或Cancel它都会退出!应该怎么办才能让它不这样呢?
那么点击了是不好产生WindowEvent事件的。
但你为什么一定要产生WindowEvent事件呢。button.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//这里就是你点击了那个按钮之后的代码了。你点击了这个按钮,就是要关闭窗口,在这之前就是要弹出个确认对话框呗!
// showComfirmMessageDialog(不一定是这个,你看下API)
//然后if() window.close();else 什么都不做。不就ok了。
}
});
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;/**
* @author bzwm
*
*/
public class ConfirmClose extends JFrame{
public ConfirmClose(){
super();
JButton b = new JButton("Exit");
b.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {
buttonClick();
}
});
this.add(b);
this.setSize(300, 300);
this.setVisible(true);
}
void buttonClick(){
int flg = javax.swing.JOptionPane.showConfirmDialog(null, "close?");
if(flg == 0){
this.setVisible(false);
}
}
public static void main(String args[]){
new ConfirmClose();
}
}
试试这个