当前位置: 技术问答>java相关
读代码遇不明白之处,盼高手指点
来源: 互联网 发布时间:2017-04-30
本文导语: //问题是关于java的event实现机制的 public class Frame1 extends JFrame { ...... //事件源对象 直接在它的 增加监听对象的方法 内实现了 监听对象?没看明白,难道不需要重新派生一个类作为监听对象吗? //...
//问题是关于java的event实现机制的
public class Frame1 extends JFrame {
......
//事件源对象 直接在它的 增加监听对象的方法 内实现了 监听对象?没看明白,难道不需要重新派生一个类作为监听对象吗?
//这里的 new 操作符后边的 ActionListener()是类吗,如果是,为什么要加上 "()" 符号?
jMenuFileExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileExit_actionPerformed(e); //这里是调用下面实现的该类的一个方法
}
});
......
public void jMenuFileExit_actionPerformed(ActionEvent e) {
System.exit(0);
}
......
}
public class Frame1 extends JFrame {
......
//事件源对象 直接在它的 增加监听对象的方法 内实现了 监听对象?没看明白,难道不需要重新派生一个类作为监听对象吗?
//这里的 new 操作符后边的 ActionListener()是类吗,如果是,为什么要加上 "()" 符号?
jMenuFileExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileExit_actionPerformed(e); //这里是调用下面实现的该类的一个方法
}
});
......
public void jMenuFileExit_actionPerformed(ActionEvent e) {
System.exit(0);
}
......
}
|
jMenuFileExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileExit_actionPerformed(e); //这里是调用下面实现的该类的一个方法
}
});
这是一个简单的匿名类写法,请查看讲匿名类方面的书.对于功能复杂一点的,最好是从ActionAdapter派生一个类或定义一个实现ActionListener接口的类.
public void actionPerformed(ActionEvent e) {
jMenuFileExit_actionPerformed(e); //这里是调用下面实现的该类的一个方法
}
});
这是一个简单的匿名类写法,请查看讲匿名类方面的书.对于功能复杂一点的,最好是从ActionAdapter派生一个类或定义一个实现ActionListener接口的类.
|
jMenuFileExit.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileExit_actionPerformed(e); }
}
);
我这样修改你应该明白了吧?
实际上这代码是把新定义的 ActionListener()直接写到括号里面了。
new ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileExit_actionPerformed(e); }
}
);
我这样修改你应该明白了吧?
实际上这代码是把新定义的 ActionListener()直接写到括号里面了。
|
INNER CLASS 用起来好烦的。上面的代码看起来很不爽的说,一般要自己写个类来实现ACTIONPERFORMED的吧。个人认为不要像上面问题中那样写的好。