簡體   English   中英

重用Swing組件,這些組件很難初始化

[英]Reusing Swing components which are time-consuming to initialize

如果我的應用程序中有一個龐大的Swing組件需要很長時間來初始化,並且想要同時在我的GUI中的不同位置顯示該組件,我最好如何做到這一點?

GUI用戶必須能夠與組件的不同副本進行交互(例如,它們可以用作鏡像)。

假設有人可能想要動態顯示該組件的副本,具體取決於GUI用戶的輸入(也就是說,我們不希望預先加載同一組件的許多副本)。

您需要更改組件以像時尚模型一樣訪問數據。 每個組件都需要指向同一個模型,該模型將為數據提供服務並執行一次密集型任務而不是多次。

此外,初始化正在減慢GUI,然后它聽起來像你需要一個啟動畫面或進度條,任務移出EDT。

有沒有什么方法可以把重型初始化代碼拉出來,可能是'...工廠'類?

我將創建一個組件的一個實例(比如說HeavyComponent)和一個自定義類,例如JPanel和引用組件。 我們把它命名為MyContainer。 在MyContainer的paintComponent()上,我將原始組件繪制到BufferedImage或使用heavyComponentReference.paint(g)。 然后在MyContainer上點擊我將交換組件替換面板與HeavyComponent的實例並放置在HeavyComponent新實例MyContainer的舊位置。

同時在我的GUI中的不同位置顯示此組件...無需創建同一組件的新副本...用戶必須能夠與不同的副本進行交互

沒門。

暫無
暫無

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

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