......
exitItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
exitListener();
}
});
addWindowListener(new WindowAdapter() {
public void WindowClosing(WindowEvent e) {
exitListener();
}
}); private void exitListener() {
if(ok != true)
dispose();
else {
int option = JOptionPane.showConfirmDialog(null, "FileChange, are you Save?",
"save file?", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null);
switch(option) {
case JOptionPane.YES_OPTION :
saveListener();
break;
case JOptionPane.NO_OPTION :
dispose();
}
}
}
.......
请问 为什么exitItem点击的时候 正常调用exitListener();
而点右上角那个X的时候 就不能正常调用exitListener(); 而是直接默认关闭当前窗口了
这是为什么呢 是我哪里写错了吗?
exitItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
exitListener();
}
});
addWindowListener(new WindowAdapter() {
public void WindowClosing(WindowEvent e) {
exitListener();
}
}); private void exitListener() {
if(ok != true)
dispose();
else {
int option = JOptionPane.showConfirmDialog(null, "FileChange, are you Save?",
"save file?", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null);
switch(option) {
case JOptionPane.YES_OPTION :
saveListener();
break;
case JOptionPane.NO_OPTION :
dispose();
}
}
}
.......
请问 为什么exitItem点击的时候 正常调用exitListener();
而点右上角那个X的时候 就不能正常调用exitListener(); 而是直接默认关闭当前窗口了
这是为什么呢 是我哪里写错了吗?
解决方案 »
- 反射出错java.lang.IllegalArgumentException: argument type mismatch
- 关于JAR运行的问题
- 让图片填充整个jframe,高手请指点一二。。。。
- 一个关于系统时间显示的问题,希望大虾们不吝赐教!
- GUI急救:一直想不到办法解决
- 我出分,大家来谈谈 IllegalStateException
- 如何将JAVA的程序隐藏至状态栏
- 自己编写的程序怎么运行JDK来进行编译呀
- 答过“ 大家都来谈谈自己学习Java的经验或看法!(来者有分)”帖子的兄弟,进行第三次接分啦!!
- 一个小问题问了很多次了(累计到220分了),请高手们指点
- 字段做形参,能改变形参的值吗?得到答案马上结贴
- 求小数后的第二十位的问题
public void WindowClosd(WindowEvent e) {
exitListener();
}
第一个w给大写了, 哈哈, 复制了你的, 也写错了. windowClosing, windowClosed
这两个方法如果一个不行, 两个都用上, 肯定可以, 具体哪个是真正调用的, 也记不清了.
java新手群2:61983722
java新手群3:100937801
java新手群4:100937543
C/C++/VC++群: C/C++/VC++编程:19109875
C/C++/VC++群2:20869693
C/C++/VC++群3:85308657
C/C++/VC++群4:100937628 希望对大家学习有所帮助!共同提升,共同进步~~
2. 使用JDK的annotation特性.
例如你要重写(Override)父类的一个函数, 像刚才这个windowClosing, 可以像下面这样:@Override
public void WindowClosd(WindowEvent e) {
exitListener();
}
在函数名前面加上一个@Override, 表示你要重写父类的一个方法, 如果你的这个方法名在父类中找不到, 编译的时候就会报错.
上面的就会报错, 因为把w大写了, 而函数WindowClosing在父类中是没有的.