1

抱歉标题含糊,我正在尝试布局一个应用程序,但不幸的是,我在没有遵循正确的 MVC 架构规则的情况下开始编码。我有一个具有以下结构的应用程序。

带有 JPanel(“MainPanel”)作为组件添加的 JFrame,MainPanel 具有 CardLayout 结构。然后 MainPanel 有几个 JPanel 可以使用按钮、Jcombo Box 和 List 选项进行翻转。

我想使用这种结构来实现 MVC 模型,但我很难找到一种方法来实现这一点。到目前为止,我的所有 actionListener 都在其中创建了 GUI 组件,并希望将其分离出来,并为添加到 MainPanel 的每个 JPanel 提供一个控制器。有哪些方法可以设计这个程序,使我可以分离我的操作逻辑和数据访问,并且仍然保持 CardLayout 结构?

4

1 回答 1

2

A Swing 架构概述中所述,Swing 可分离模型架构意味着一个应用程序可能有许多模型。按钮和表格是常见的例子。动作是封装组件功能以在菜单、按钮和其他控件中重用的便捷方式。您没有提供有关应用程序模型的详细信息,但您可能会考虑使用状态模式来简化导航模型。这个答案也可能提供一些见解。

附录:作为一个具体的例子,使用的导航模型CardPanel完全隐含在组合的DefaultComboBoxModel. 通过扩展该模型,您的视图可以将自己注册为侦听器并在用户更改组合设置时适当地配置自己。例如,您的程序数据模型所需的值(相关视图也侦听该值)可能会突出显示以表示必填字段;或者对当前状态没有意义的控件可能被禁用或隐藏。

于 2011-07-25T07:44:20.027 回答