我正在开发一个新的应用程序,我将在其中同时打开一些窗口。 我目前正在尝试设计 GUI,我正在为两种选择而苦苦挣扎:
我可以使用侧面导航面板并使用页面中心显示每个面板的内容。这些面板将根据享元模式存储,我会在单击导航按钮时隐藏/显示它们(以便按隐藏时的原样保存内容,例如用户注册表)。
我可以使用首页来显示整个菜单,并使用弹出窗口/新窗口来显示内容。这些可以关闭/最小化等)。
我的问题是:如果所有面板都存储在我的享元模式中怎么办?它会产生巨大的性能影响还是会在存储了 15 个 JPanel 的情况下仍能平稳运行? (当然,那些 JPanel 有时会有很多内容,例如表单等)。
您认为什么是最好的易用/性能选择?
谢谢你:)
最佳答案
JTable
rendering已经使用 flyweight pattern , 因此单列表是理想的选择。自定义呈现器可以显示任意缩略图表示,而 ListSelectionListener
可以在相邻容器中显示任意细节。在 TableModel
中,考虑一个 LRU cache如果单个数据记录占用过多内存。
关于Java Swing : flyweight vs new windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11780048/