【问题标题】:Optimizing painting of a JFrame with a large number of components in Java在 Java 中优化具有大量组件的 JFrame 的绘制
【发布时间】:2012-01-30 19:29:33
【问题描述】:

所以我有以下问题。 我创建了一个具有非常大数量的组件的 JInternalFrame(比如说 50 000 个文本区域)。首先,我执行所有逻辑(捕获显示在文本区域中的所有数据),在将框架设置为可见之后,是什么让程序冻结(我想它会绘制所有组件)。

优化绘画的最佳方法是什么? 我想我应该使用单独的线程,这样程序就不会冻结,但是最好的方法是什么? 我应该先将框架设置为可见,然后在线程中进行登录,还是应该进行所有登录,然后在线程中绘制它(如果是这样,如何将子组件与父组件分开绘制),或者其他什么?

提前致谢

【问题讨论】:

    标签: java swing optimization components


    【解决方案1】:

    Swing 组件不得在 EDT 之外使用。因此,添加线程不是一种选择。显而易见的选择是不要拥有那么多组件。具有 50,000 个文本区域的 UI 无法使用。重新设计用户界面。

    【讨论】:

    【解决方案2】:

    一个问题是调用 pack() 时的布局。适当的 LayoutManager 和 set(Prefered|Minimum|Maximum)Size 会有所帮助。

    您似乎正在 JScrollPane 内制作一种电子表格。在这种情况下,JTable 可能会通过虚拟模型帮助鼠标悬停上的文本区域。 (一个 JTable 为不同的单元重用相同的组件。)

    【讨论】:

    • 是的,我会尝试使用 JTable
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多