有人可以解释一下actionPerformed方法如何在没有任何调用的情况下执行吗?
GUI框架Swing在后台运行动作处理代码。每当按下按钮或用户以其他方式与GUI交互时,Swing都会通过许多
Listener界面之一通知您的应用程序。为了接收这些事件,您的类需要实现适当的
Listener接口,并在其感兴趣的每个组件上注册为侦听器。
您的类实现该
ActionListener接口并调用
addActionListener以将其自身注册到该按钮。单击按钮后,Swing将尝试
ActionListener通过调用所有
actionPerformed方法来通知所有已注册的。这就是“魔术”发生的方式。
在这里,我在go()方法的本地定义了框架对象,我们在actionPerformed中使用了按钮,这是另一种方法,那怎么可能呢?按钮没有嵌入框架吗?
您可以
add单击框架内容窗格中的按钮-这会将按钮放置在 布局中 的框架中,而不是 代码中 。因为您
button通过将
JButtonbutton;任何方法放在外部来声明为实例变量,所以仍可以从
static该类中的任何(非)方法访问它。



