如何设置ActionListener来侦听另一个ActionListener来触发另一个类中的事件?

时间:2013-03-16 07:47:14

标签: java swing spring-mvc jframe jpanel

我正试图弄清楚如何让一个班级听另一个班级。所以这就是主意。

我有一个MainFrame类,它只是一个容器类,JFrame容器,它接受一个JPanel类型的参数。基本上我希望这个容器类能够在帧之间切换,这取决于我的其他类FrameSwitcher将告诉它做什么。

其他课程为:FrameSwitcher, MainMenu and ScoreBoards

这个想法是,让我们说MainMenu,将包含4个按钮,每个按钮都会监听,但不会改变帧。相反它会以某种方式 - 这是我需要帮助的部分 - 发送到FrameSwitcher点击了什么按钮,然后这些信息将被发送到MainFrame以切换到适当的帧。

2 个答案:

答案 0 :(得分:3)

您可能正在寻找observer pattern,讨论here。特别是,PropertyChangeListener,图示为here,可能是松散耦合的有用方法。

另请考虑让每个视图导出ActionCardLayout从{{1}}中选择自己,如How to Use ActionsHow to Use CardLayout中所述。

答案 1 :(得分:2)

FrameSwitcher应该在菜单中添加ActionListeners。点击它会改变它的状态并调用MainFrame的方法switchTo(argumentWhereToSwitch);