Java Swing - 在多个面板或单个面板中绘制更有效



如果可以选择在单个 JPanel 中进行所有渲染或跨多个 JPanels 进行渲染(使用覆盖 paintComponent),并且不使用任何其他 Swing 组件,例如 JButtons、JTextBoxes、JComboBox 等(面板所在的 JFrame 除外)。 如果只使用drawLine,drawRectangle,fillRect等进行绘制。 在一个面板中绘制所有内容还是将绘图分散到多个面板上更有效?假设代码复杂性是相同的,减少滞后/改善响应时间很重要。

它的效率稍微高一些。

但是,请考虑使用多个面板并依靠布局管理器来处理大小调整等。它很可能会简化您的代码。如果您只使用一个面板,则必须自己调整大小。

编程中,在知道性能是一个问题之前,不要进行优化。 量!

Swing 只会在需要时绘制组件。

如果每次属性更改时都会重新绘制整个框架,则将逻辑放在一个位置以便于维护。

如果将面板分解为子组件是合乎逻辑的,则可以根据需要重新绘制各个子组件。

例如,这是 JTable 的工作方式。表中可以有一百行,但如果只更改一行中的数据,则只重绘该行。

最新更新