Java Swing : flyweight vs new windows

标签 java performance swing flyweight-pattern

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

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

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

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

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

谢谢你:)

最佳答案

JTable rendering已经使用 flyweight pattern , 因此单列表是理想的选择。自定义呈现器可以显示任意缩略图表示,而 ListSelectionListener 可以在相邻容器中显示任意细节。在 TableModel 中,考虑一个 LRU cache如果单个数据记录占用过多内存。

与性能问题一样,prototypeprofile .

关于Java Swing : flyweight vs new windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11780048/

相关文章:

java - 从 JPanel 实例化 JDialog

java - Tomcat 8 Http状态404 请求的资源不可用

java - 如何包含pom项目中的所有模块

java - 为什么 ForkJoinPool.commonPool().execute(runnable) 需要更多时间来运行线程

C#.NET : How to check if we're running on battery?

Java JTable动态填充

java - 创建具有硬件加速的表单应用程序

java - Kotlin 中有关于访问修饰符的文档吗?

java - Thread.sleep() 的意外行为

c++ - 编译器可以优化可变长度循环吗?