【发布时间】:2015-03-26 17:35:50
【问题描述】:
在我的代码中,我目前将所有 ActionListener 都设置为匿名内部类,如下所示:
item.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//code here
}
}
现在,当代码不超过 20 行时,这对我来说感觉很好,但是超过 20 行感觉很笨重。 所以,我可以实现 ActionListener 并有一个方法
ActionPerformed(ActionEvent ae)
{
if ae.getSource() == item
{
// code here too
}
}
但我无意在其他任何地方重复使用此代码... 我也可以创建另一个类来处理这个问题,但这并没有真正的帮助,因为我仍然希望使用在我的父类中实例化的变量。
我真正想做的是使用这样的语法:
private void btnAction()
{
// do code
{
public static void main(String[] args)
{
btn.addActionListener(btnAction)
}
我觉得这样看起来最好,因为我可以将事件隐藏在底部并专注于大部分正在运行的项目。 这有可能实现吗?
【问题讨论】:
-
为什么不使用非匿名内部类?
-
您能解释一下吗?我不熟悉非匿名内部类
-
一个基本的inner class,有一个名字,定义为类的成员。
标签: java actionlistener actionevent