1

我正在开发一个新的应用程序,我将同时打开一些窗口。我目前正在尝试设计 GUI,但我正在为两种选择而苦苦挣扎:

  1. 我可以使用侧面导航面板并使用页面中心来显示每个面板的内容。这些面板将根据享元模式存储,我会在单击导航按钮时隐藏/显示它们(以便在隐藏时按原样保存内容,例如用户注册表单)。

  2. 我可以使用在其上显示菜单的首页并使用弹出窗口/新窗口来显示内容。这些可以关闭/最小化等)。

我的问题是:如果所有面板都存储在我的享元模式中怎么办?它会对性能产生巨大影响,还是在存储 15 个 JPanel 时仍能顺利运行?(当然,这些 JPanel 有时会包含很多内容,例如表单等)。

您认为最好的易于使用/性能选择是什么?

谢谢 :)

4

2 回答 2

4

JTable 渲染已经使用享元模式,因此单列表是选择的理想选择。自定义渲染器可以显示任意缩略图表示,而ListSelectionListener可以在相邻容器中显示任意细节。在 中,如果单个数据记录消耗太多内存,请TableModel考虑使用LRU 缓存。

一如既往地处理性能问题、原型配置文件

于 2012-08-02T17:02:52.210 回答
3

只要您不尝试保持比合理地适合堆更多的数据,现在性能将不是问题(除非您做一些非常糟糕的事情,否则从用户的角度来看,您不会注意到任何性能差异)。

也就是说,除非您有迫切的理由坚持使用您当前不需要的 GUI,否则只需让它们获得 GC 并根据需要重新创建它们。当应用程序需要修改时,一次使用后创建丢弃的方法更灵活,并且内存泄漏的机会更少。

至于 GUI 设计方面,很多人绝对讨厌弹出窗口。它们还可能干扰焦点管理/键盘的使用。但这仍然取决于您需要哪种控制流。侧边菜单栏适用于多种用途。

我想指出,侧边菜单只是对Tabbed Pane(这是一个您不需要自己实现的标准组件)的一种奇特的改造。此外,如果事情需要按特定顺序完成 - 类似向导的方法也是一个不错的选择(一个窗口,每个步骤完成都会更改内容)。

于 2012-08-02T15:35:36.440 回答