我知道我的问题也有类似的问题。但是有几个我想特别问,因为我们正计划手工重新设计我们的GUI。我们正在设计的系统将是一个学校将使用的招生系统。
当我们正在设计它并向类中添加了许多组件时,我们遇到了一个低内存编译错误,这使我认为继续通过GUI Builder进行设计可能会导致长期的问题。
我真的需要专家的意见和建议,因为我们只是学生。
下面是我们当前GUI设计的截图和它的类的截图。

这实际上是一个错误,将所有面板和其他组件放在Enrollment_System.java类中,我怀疑这超出了项目VM选项的Xms限制。
我想,也许我们可以将框架和面板分离到不同的文件夹/包中,以避免超出每个类的内存限制。这是最好的做法吗?如果组件将放在单独的文件夹中,如下面的屏幕快照,我们应该使用多少帧。

我想我的主要问题是,如何正确地管理面板和组件,以便在注册系统中方便地实例化对象和执行系统任务。
如有任何建议或帮助,我将不胜感激。
发布于 2015-12-22 21:48:59
在使用表单编辑器和手工编写UI之间的选择可以是基于意见的。
当我刚开始研究Swing的时候,表单编辑们,嗯,糟糕透顶。因此,我学会了手工编写UI的代码,这也有助于我在第一个项目中使用动态加载机制,这意味着我们不能在代码中使用顶级容器(如JFrame ),所以一切都必须从JPanel开始。
我想,也许我们可以将框架和面板分离到不同的文件夹/包中,以避免超出每个类的内存限制。这是最好的做法吗?如果组件将放在单独的文件夹中,如下面的屏幕快照,我们应该使用多少帧。
这是一个好的开始,你也应该限制你扔给你的用户的框架/窗口的数量,他们有足够的干扰在那里的生活处理,而不是你扔给他们更多。相反,使用尽可能少的窗口来管理视图,比如使用JTabbedPane或CardLayout (并在适当的情况下使用对话框)。
通过将你的UI分割成“隔间”,你也减少了耦合,增加了可重用性,例如,如果你有一个组件来显示病人的详细信息,你可以继续重复使用它,在任何时候你需要在那里显示细节。
我想我的主要问题是,如何正确地管理面板和组件,以便在注册系统中方便地实例化对象和执行系统任务。
分离责任区域,允许每个视图只管理需求的一个方面,然后构建这些方面(将视图添加到公共容器中)以生成更复杂的功能。
例如,您可以有一个简单的“病人详细信息”视图,显示有关用户的基本信息,然后您可以有一个“选择病人”视图,该视图只显示JList中患者的名称,然后可以将这些视图组合成一个更复杂的视图,以便当用户从JList中选择患者时,可以显示患者详细信息。
然后,您可以有一个“专利历史”视图,结合“病人详细信息”视图,显示有关患者的基本细节,以及患者治疗史的列表。
建议
表单设计人员不鼓励您使用良好的设计实践,正如您所发现的。而不是把UI看作一个单一的实体,你需要专注于个人(最小的责任单位),并构建复杂性。
从放弃表单设计器开始,手工构建您的UI。这将帮助您通过使用不同的类以及表单设计人员不鼓励的布局技巧来帮助您生成复杂的UI。
一旦您做得相当好,就可以开始使用UI设计器来加速这个过程,允许您快速生成布局并组合它们(请记住,您可以将项目类路径中的任何组件添加到您的表单中,而不仅仅是那些位于调色板中的组件)。
发布于 2015-12-22 15:20:28
对我来说,这个问题类似于一个人是应该驾驶一辆手推车还是自动驾驶(自动换档)。好吧,如果你正在寻找舒适,尽快完成它,你不需要极端控制你的GUI,即你把什么,然后采取自动。如果你对事情很挑剔,特别是当它是一个大项目的时候,用手去做。
就管理而言,在这样一个项目之前,您需要制定一个计划,然后将其写在纸上上。决定你想要多少菜单/框架/面板/按钮,它们里面应该有什么,你需要概括一下你需要实现这些东西的一般想法。然后计划你需要多少类,在一个类中放置相关的变量/方法是非常重要的。这听起来可能很乏味,而且工作量很大,但相信我的大型项目,它总是有回报的。这会让你的生活更轻松。
如果您还计划升级/更改您的程序,我会推荐好的文档,或者至少有很多注释和好的变量命名技术。希望这能有所帮助。
https://stackoverflow.com/questions/34418530
复制相似问题