Swing - 从按钮类获取主窗口类实例

时间:2012-02-25 21:38:26

标签: java swing awt mouseevent

我需要在单击特定按钮时在面板类中运行一个方法(让我们称之为SampleMethod)。由于面板被添加到主窗口类实例中的某种列表中,我只是将其公开,并希望在按钮的mouseClicked事件中访问它。 那么,我如何获得主窗口实例,以便获得该面板列表,获取特定面板并使用此实例运行SampleMethod

4 个答案:

答案 0 :(得分:2)

您可以将Action视为公开所需功能的一种方式。常用的是让按钮和菜单共享相同的处理程序,但是一个Action可以事件转发给另一个,如图所示here用于按钮和按键。

答案 1 :(得分:2)

答案 2 :(得分:1)

  

将面板添加到主窗口类中的某种列表中   实例...

主窗口类实例?您的主窗口似乎只有一个实例可以延伸JFrameJPanelJDialog等等。无论如何,您可以在您的主页中使用 Singleton 设计模式应用程序在代码中的任何位置获取和使用相同的实例(在您的情况下是相同的主实例)。在Singleton模式中,我们应用模式的类的构造函数是 private ,因此您无法创建它的实例。但是,这个类还有单个静态实例,可以通过getter方法引用并在代码中使用any。看看网络上的Singleton示例,你就可以打个电话了

YourJFrame.getInstance().getPanels(10).sampleMethod();

在您的嵌套类和方法中,在您的情况下为mouseClicked()

答案 3 :(得分:0)

什么垃圾桶说。使用ActionListener类和按钮addActionListener()代替,因为您只需要知道按钮是否被按下。