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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 奋斗2013 中级黑马   /  2013-3-28 19:03  /  1905 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 奋斗2013 于 2013-4-6 15:48 编辑

看了一个关于事件监听气的代码:
  textField.addKeyListener(new KeyAdapter(){
       @Override
       public void keyReleased(KeyEvent e){
                   do_textField_keyRelesaed(e);
             }
      });
textField 是文本框,我不明白的是new keyAdapter()是建立一个对象吧,后面又加了{}。这段语句结尾又用“;”。这是什么语句写法。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

3 个回复

倒序浏览
这是GUI编程中匿名内部类的一种写法:
我个人认为 可以访问外部类的私有方法、成员,是匿名内部类的最牛的地方
另外使用匿名内部类你不用费劲脑汁给类起名了,其代码更加简洁,紧凑,但是易读性下降。
一般只在GUI编程中实现事件处理等等

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
这是java的匿名内部类.
首先你可以从最外层开始理解,textField.addKeyListener(KeyAdapter的对象);这里要加分号,这是一句完整的语句.
然后,new的对象就是KeyAdapter的对象,只不过你写的这句话是直接在参数里面new了.
再者,就是你说的加{}的问题.这就是匿名内部类,{}里面可以复写这个类的方法.这就是java的语法,不懂的话可以继续问.

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
若还有问题,请继续追问; 没有的话,将帖子分类改成【已解决】哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马