当前位置: 代码迷 >> Java相关 >> [求助]弱弱的问个问题~~
  详细解决方案

[求助]弱弱的问个问题~~

热度:142   发布时间:2007-05-26 12:05:57.0
[求助]弱弱的问个问题~~
用JCreator自动生成的代码中下面这段话看不懂,addActionListener不是一个接口吗?怎么还能New它呢?
// Add action listener.for the menu button
menuFileExit.addActionListener
(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
testFrame.this.windowClosed();
}
}
);
----------------解决方案--------------------------------------------------------

这个东西叫做匿名类,楼主可以去看看内部类的相关知识.


----------------解决方案--------------------------------------------------------
匿名类 与 匿名对象
关键是后面有个{} 这就是产生了一个匿名类来实现了接口
new 一下就产生了一个匿名对象
不知道对不
----------------解决方案--------------------------------------------------------
当某些接口需要实现很多的方法,但是我们却只需要使用其中的1个或2个方法,那么我们就可以写匿名内部类了,例如窗体时间,鼠标事件等,主要是为了要减少多余的代码,是你的程序看起来思路更清晰
----------------解决方案--------------------------------------------------------
那个叫匿名内部类,没有构造器,所以直接 new interface;
它其实在底层是这样实现的:
menuFileExit.addActionListener( new Action);

public class Action implements ActionListner{
public void actionPerformed(ActionEvent e) {
testFrame.this.windowClosed();

}
----------------解决方案--------------------------------------------------------
额。谢谢各位了。。
----------------解决方案--------------------------------------------------------