A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 彭波 于 2013-4-2 09:07 编辑
  1. //事件和图形化组件分离开

  2. import java.awt.*;
  3. import java.awt.event.*;
  4. class FrameDemo
  5. {
  6.         //定义该图形中所需的组件的引用
  7.         private Frame f;
  8.         private Button but;
  9.         
  10.         FrameDemo()//构造函数
  11.         {
  12.                 init();
  13.         }
  14.         public void init()
  15.         {
  16.                 f = new Frame("my frame");
  17.                
  18.                 //对frame进行基本设置
  19.                 f.setBounds(300, 100, 600, 500);//移动组件并调整大小        
  20.                 f.setLayout(new FlowLayout());
  21.                
  22.                 but = new Button("my button");
  23.                
  24.                 //将组件添加到frame中
  25.                 f.add(but);
  26.                
  27.                 //加载窗体上事件
  28.                 myEvent(); //此处添加了关闭窗口的事件,怎么程序运行后不能关闭窗口啊???
  29.                
  30.                 //显示窗体
  31.                 f.setVisible(true);
  32.         }
  33.         
  34.         private void myEvent()
  35.         {
  36.                 f.addWindowListener(new WindowAdapter() //监听器,匿名内部类
  37.                 {
  38.                         public void wimdowClosing(WindowEvent e)
  39.                         {
  40.                                 System.exit(0);
  41.                         }
  42.                 });        
  43.         }
  44.         
  45.         public static void main(String[] args)//主函数
  46.         {
  47.                 new FrameDemo();        //创建对象,产生窗体
  48.         }
  49. }
复制代码
看到GUI了,22天-06的那个视频,代码我看了和老师一样的啊,怎么产生窗体后不能关闭啊???????????

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1 神马都是浮云

查看全部评分

6 个回复

倒序浏览
亲  这个程序是对的啊,能关闭。我运行试了一下能关闭,你在运行一下试试。或者说是你在还没有写监听器
  1. private void myEvent()
  2.         {
  3.                 f.addWindowListener(new WindowAdapter() //监听器,匿名内部类
  4.                 {
  5.                         public void wimdowClosing(WindowEvent e)
  6.                         {
  7.                                 System.exit(0);
  8.                         }
  9.                 });        
  10.         }
复制代码
的时候就运行过了,这个窗体是不是先前程序创建的,只要你写好了监听器,在函数之间调用了方法就能关闭。细心看一下,有的时候就是一个字母大小写的问题。注意细节就好了。

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

回复 使用道具 举报
张玉保 发表于 2013-4-1 15:07
亲  这个程序是对的啊,能关闭。我运行试了一下能关闭,你在运行一下试试。或者说是你在还没有写监听器的时 ...

我运行了,不行啊,确定不行,我的是jdk1.7.0-04版本的,老师的是jdk1.6版本的,是不是版本问题啊???,操作系统是win7的
回复 使用道具 举报
该不会是39行写错的原因吧  public void wimdowClosing(WindowEvent e),改为public void windowClosing(WindowEvent e)
回复 使用道具 举报
import java.awt.*;

import java.awt.event.*;

class FrameDemo

{

        //定义该图形中所需的组件的引用

        private Frame f;

        private Button but;

        

        FrameDemo()//构造函数

        {

                init();

        }

        public void init()

        {

                f = new Frame("my frame");

               

                //对frame进行基本设置

                f.setBounds(300, 100, 600, 500);//移动组件并调整大小        

                f.setLayout(new FlowLayout());

               

                but = new Button("my button");

               

                //将组件添加到frame中

                f.add(but);

               

                //加载窗体上事件

              myEvent(); //此处添加了关闭窗口的事件,调用此方法没有错,但没有反应,那思路就得放在myEvent();方法里找。

               

                //显示窗体

                f.setVisible(true);
            

        }

        

        private void myEvent()

        {

                f.addWindowListener(new WindowAdapter() //监听器,匿名内部类

                {

                        public void windowClosing(WindowEvent e)//n被你写成了m。。。。

                        {

                                System.exit(0);

                        }

                });        

        }

        

        public static void main(String[] args)//主函数

        {

                new FrameDemo();        //创建对象,产生窗体

        }

}
小错误。细心点就好

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
嗯,问题解决了,一个单词写错了,也没有错误提示,害的我找了半天,悲剧
回复 使用道具 举报
余勇 来自手机 中级黑马 2013-4-2 13:44:10
7#
你要加Override
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马