【发布时间】:2015-09-18 21:18:11
【问题描述】:
说,我有一个扩展 JFrame 并实现 ActionListener 的类 XFrame。在课堂上我有一个 JButton b 并且我覆盖了 actionPerformed 方法。现在在构造函数中我必须设置 b.addActionListener(this)。我的问题是:在这种情况下,'this' 做了什么,我可以用什么代替它?我试过 b.addActionListener(new XFrame()) 但没用。
【问题讨论】:
-
你可以创建一个 actionListener 的实例来代替这个。例如: new ActionListener() { public void actionPerformed( ActionEvent ae ) { } );
-
这意味着
this在任何其他情况下的含义 - 对当前对象的引用 -
您可以传递任何实例,就像任何其他函数调用一样。你有什么问题?
-
JButton.addActionListener()的参数是一个ActionListener实例,当按钮上出现ActionEvent时应通知该实例。它可以是anyActionListener,并且您可以通过这种方式在同一个按钮上注册多个。 -
在此上下文中,这是一个 ActionListener 的实例。真正的问题是,您希望实现什么目标?