簡體   English   中英

Java Swing-繪制多個面板或單個面板的效率更高

[英]Java Swing - More efficient to draw in multiple panels or a single panel

如果可以選擇在單個JPanel中進行所有渲染,還是在多個JPanels中進行渲染(覆蓋了paintComponent),而又沒有使用其他任何Swing組件(例如JButton,JTextBoxes,JComboBoxes等)(除了面板或面板駐留)。 如果僅使用drawLine,drawRectangle,fillRect等進行繪圖,那么將所有內容繪制在一個面板中或將繪圖分散到多個面板是否更有效? 假設兩種方法的代碼復雜度相同,並且減少延遲/提高響應時間很重要。

效率更高一些。

但是,請考慮使用多個面板,並依靠布局管理器來處理尺寸調整等。這很可能會簡化您的代碼。 如果僅使用一個面板,則必須自己調整大小。

在編程中,請不要在知道性能問題之前進行優化。 測量!

Swing僅在需要時才繪制組件。

如果每次屬性更改時都重新繪制整個框架,則將邏輯放在一個地方,以方便維護。

如果將面板分為子組件是合乎邏輯的,則可以根據需要重新繪制各個子組件。

例如,這就是JTable的工作方式。 表中可以有一百行,但是如果僅更改一行中的數據,則僅該行會重新繪制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM