我正试图弄清楚如何让一个班级听另一个班级。所以这就是主意。
我有一个MainFrame
类,它只是一个容器类,JFrame容器,它接受一个JPanel类型的参数。基本上我希望这个容器类能够在帧之间切换,这取决于我的其他类FrameSwitcher
将告诉它做什么。
其他课程为:FrameSwitcher, MainMenu and ScoreBoards
。
这个想法是,让我们说MainMenu
,将包含4个按钮,每个按钮都会监听,但不会改变帧。相反它会以某种方式 - 这是我需要帮助的部分 - 发送到FrameSwitcher
点击了什么按钮,然后这些信息将被发送到MainFrame
以切换到适当的帧。
答案 0 :(得分:3)
您可能正在寻找observer pattern,讨论here。特别是,PropertyChangeListener
,图示为here,可能是松散耦合的有用方法。
另请考虑让每个视图导出Action
,CardLayout
从{{1}}中选择自己,如How to Use Actions和How to Use CardLayout中所述。
答案 1 :(得分:2)
FrameSwitcher
应该在菜单中添加ActionListeners
。点击它会改变它的状态并调用MainFrame的方法switchTo(argumentWhereToSwitch);