黑马程序员技术交流社区

标题: 运行程序,点窗体右上角叉号,怎么关不掉? [打印本页]

作者: 寇龙飞    时间: 2012-9-13 21:49
标题: 运行程序,点窗体右上角叉号,怎么关不掉?
本帖最后由 寇龙飞 于 2012-9-15 10:58 编辑
  1. package com.itheima.bixiangdong;

  2. import java.awt.Button;
  3. import java.awt.FlowLayout;
  4. import java.awt.Frame;
  5. import java.awt.event.WindowAdapter;
  6. import java.awt.event.WindowEvent;
  7. import java.awt.event.WindowListener;

  8. public class MyLayout {

  9.         public static void main(String[] args) {
  10.                 Frame f = new Frame("awt");
  11.                 f.setLocation(300, 300);
  12.                 f.setSize(500, 300);
  13.                 f.setLayout(new FlowLayout());
  14.                
  15.                 f.addWindowListener(new MyWin());
  16.                 f.setVisible(true);
  17.         }
  18. }
  19. class MyWin extends WindowAdapter {
  20.         void windowCloseing(WindowEvent e) {
  21.                 System.exit(0);
  22.         }
  23. }
复制代码

作者: 舒远    时间: 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
  1. package com.itheima.bixiangdong;

  2. import java.awt.Button;
  3. import java.awt.FlowLayout;
  4. import java.awt.Frame;
  5. import java.awt.event.WindowAdapter;
  6. import java.awt.event.WindowEvent;
  7. import java.awt.event.WindowListener;

  8. public class MyLayout {

  9.         public static void main(String[] args) {
  10.                 Frame f = new Frame("awt");
  11.                 f.setLocation(300, 300);
  12.                 f.setSize(500, 300);
  13.                 f.setLayout(new FlowLayout());
  14.                
  15.                 f.addWindowListener(new MyWin());
  16.                 f.setVisible(true);
  17.         }
  18. }
  19. class MyWin extends WindowAdapter
  20. {
  21.         public void windowClosing(WindowEvent e)//就在这里呢  你的windowClosing()  不是closeing
  22.                 {
  23.                 System.exit(0);
  24.         }
  25. }
复制代码
哥们写程序还是要细心呢 ,这是小错误哟!
作者: 黑马王建伟    时间: 2012-9-13 22:18
楼主每次都写一个 类去继承不是很麻烦吗,直接用匿名内部类很轻松搞定
至于你出现的问题是方法复写错误的问题,认真点就没问题了
看代码
  1. package j2se_develop;

  2. import java.awt.FlowLayout;
  3. import java.awt.Frame;
  4. import java.awt.event.WindowAdapter;
  5. import java.awt.event.WindowEvent;

  6. public class Awt {
  7.         public Awt(){
  8.                 init();//界面初始化方法
  9.         }
  10.         public void init(){
  11.                  Frame f = new Frame("awt");
  12.          f.setLocation(300, 300);
  13.          f.setSize(500, 300);
  14.          f.setLayout(new FlowLayout());
  15.          f.addWindowListener(new WindowAdapter() {
  16.                  public void windowClosing(WindowEvent e){
  17.                          System.exit(0);
  18.                  }
  19.          });
  20.          f.setVisible(true);
  21.         }
  22.     public static void main(String[] args) {
  23.            new Awt();
  24.     }
  25. }
复制代码

作者: 任艳旭    时间: 2012-9-13 22:21
楼上的沙发,说的对,要重写windowClosing方法,你没有重写!
作者: 寇龙飞    时间: 2012-9-13 22:36
谢谢楼上几位,原来是我单词拼写错了,真心郁闷。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2