使用表单编辑器和手动编写 UI 之间的选择可能非常基于意见。
当我第一次开始使用 Swing 时,表单编辑器很糟糕。所以我学会了手工编写我的 UI,这也有助于在我工作的第一个项目中使用动态加载机制,这意味着我们不能在我们的代码中使用顶级容器,比如JFrame
,所以一切都必须从带一个JPanel
。
我想也许我们可以将框架和面板分开到不同的文件夹/包中,以避免超出每个类的内存限制。那会是最好的做法吗?如果将组件放在单独的文件夹中,我们应该使用多少帧,如下面的屏幕截图。
这是一个好的开始,你还应该限制你扔给用户的帧/窗口的数量,他们有足够的干扰来处理,而不需要你扔给他们更多。相反,以使用尽可能少的窗口的方式管理您的视图,例如使用JTabbedPane
s 或CardLayout
(以及适当的对话框)
通过将您的 UI 分成“隔间”,您可以减少耦合并增加可重用性,例如,如果您有一个显示患者详细信息的组件,您可以在需要显示详细信息的任何地方重复使用它.
我想我的主要问题是,如何正确管理面板和组件,以便我们可以轻松地在注册系统中实例化对象并执行系统任务。
分离职责区域,允许每个视图只管理您需求的一个方面,然后构建这些(将视图添加到公共容器中)以生成更复杂的功能。
例如,您可以有一个简单的“患者详细信息”视图,显示有关用户的基本信息,然后您可以有一个“选择患者”视图,它仅在 a 中显示患者的姓名,JList
然后您可以将它们组合成一个更复杂的视图视图,以便当用户从 中选择患者时JList
,可以显示患者详细信息。
然后,您可以有一个“专利历史”视图,结合“患者详细信息”视图,显示有关患者的基本详细信息,以及患者的治疗历史列表。
建议
正如您所发现的,表单设计者不鼓励您使用良好的设计实践。与其将您的 UI 视为一个单独的实体,不如将重点放在负责的个人(最小单位)上并增加复杂性。
首先放弃表单设计器并手动构建您的 UI。这将帮助你通过使用不同的类以及表单设计者真正不鼓励的布局技巧来生成复杂的 UI。
一旦你能很好地做到这一点,你就可以开始使用 UI 设计器来加速这个过程,允许你快速生成布局并将它们组合起来(记住,你可以将项目类路径中的任何组件添加到表单中,而不是只是调色板中的那些)