黑马程序员技术交流社区
标题:
运行程序,点窗体右上角叉号,怎么关不掉?
[打印本页]
作者:
寇龙飞
时间:
2012-9-13 21:49
标题:
运行程序,点窗体右上角叉号,怎么关不掉?
本帖最后由 寇龙飞 于 2012-9-15 10:58 编辑
package com.itheima.bixiangdong;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class MyLayout {
public static void main(String[] args) {
Frame f = new Frame("awt");
f.setLocation(300, 300);
f.setSize(500, 300);
f.setLayout(new FlowLayout());
f.addWindowListener(new MyWin());
f.setVisible(true);
}
}
class MyWin extends WindowAdapter {
void windowCloseing(WindowEvent e) {
System.exit(0);
}
}
复制代码
作者:
舒远
时间:
2012-9-13 22:01
你的WindowAdapter中方法并没有覆盖父类的windowClosing方法,正确的应该如下。
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}
作者:
李菁
时间:
2012-9-13 22:13
下面是我写的代码,希望你能看明白
public class Test {
public static void main(String[] args) {
Frame f = new Frame("Myawt");
f.setLocation(300, 300);
f.setSize(500, 300);
f.setLayout(new FlowLayout());
f.addWindowListener(new MyWin());
f.setVisible(true);
}
}
class MyWin extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
作者:
张飞年
时间:
2012-9-13 22:16
本帖最后由 张飞年 于 2012-9-13 22:20 编辑
楼主的问题是一个粗心的问题导致的:窗口关闭的监听器的事件是windowClosing(WindowEvent e),而不是windowCloseing(...),这个相当于自己定义了一个方法而不是覆盖了WindowAdapter类中的关闭方法。
class MyWin extends WindowAdapter {
public void windowClosing(WindowEvent e) {//应该为windowClosing(WindowEvent e),
System.exit(0);
}
}
作者:
杨卫腾
时间:
2012-9-13 22:17
package com.itheima.bixiangdong;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class MyLayout {
public static void main(String[] args) {
Frame f = new Frame("awt");
f.setLocation(300, 300);
f.setSize(500, 300);
f.setLayout(new FlowLayout());
f.addWindowListener(new MyWin());
f.setVisible(true);
}
}
class MyWin extends WindowAdapter
{
public void windowClosing(WindowEvent e)//就在这里呢 你的windowClosing() 不是closeing
{
System.exit(0);
}
}
复制代码
哥们写程序还是要细心呢 ,这是小错误哟!
作者:
黑马王建伟
时间:
2012-9-13 22:18
楼主每次都写一个 类去继承不是很麻烦吗,直接用匿名内部类很轻松搞定
至于你出现的问题是方法复写错误的问题,认真点就没问题了
看代码
package j2se_develop;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Awt {
public Awt(){
init();//界面初始化方法
}
public void init(){
Frame f = new Frame("awt");
f.setLocation(300, 300);
f.setSize(500, 300);
f.setLayout(new FlowLayout());
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
f.setVisible(true);
}
public static void main(String[] args) {
new Awt();
}
}
复制代码
作者:
任艳旭
时间:
2012-9-13 22:21
楼上的沙发,说的对,要重写windowClosing方法,你没有重写!
作者:
寇龙飞
时间:
2012-9-13 22:36
谢谢楼上几位,原来是我单词拼写错了,真心郁闷。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2