0

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

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

其他类是:FrameSwitcher, MainMenu and ScoreBoards.

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

4

2 回答 2

3

您可能正在寻找观察者模式,这里讨论过。特别是,此处PropertyChangeListener说明的 a 可能是松散耦合的有用方法。

还可以考虑让每个视图导出Action从 a 中选择自己的一个CardLayout,如如何使用操作如何使用 CardLayout中所建议的那样。

于 2013-03-16T10:08:05.310 回答
2

FrameSwitcher应继续ActionListeners添加到菜单中。单击它会更改其状态并调用 MainFrame 的方法switchTo(argumentWhereToSwitch);

于 2013-03-16T07:51:05.587 回答