2016-01-09 57 views
2

從活動窗體添加或刪除組件似乎並不會自動觸發重繪。應該添加或刪除組件觸發重繪?

刪除組件時,已刪除組件的圖像只是掛起。

將新組件添加到現有窗體時,setVisible(true) 不會觸發重新繪製。

回答

2

它不應該。

我們允許像animateLayout這樣的東西,如果我們隱約地重新繪製,就會看到閃爍的效果。另外,如果刪除很多組件或添加很多組件,則希望將其組合成單個重新繪製,而不是使用任務超載系統。

+0

我還沒有看過animateLayout,我會把它放到我的2do列表中,但是如果我沒有使用它,離開窗口圖像顯然是不正確的,更糟糕​​的是不會暴露新窗口的圖像。也許animateLayout應該被集成並且與setVisible結合在一起。 「重新繪製」的合同很快就會重新繪製,而不是立即重新繪製,因此添加/移除多個項目不應該成爲問題。 – ddyer

+0

這已經在那裏。重新繪製不會立即重新繪製。然而,你爲幫助添加的每一點邏輯都意味着CPU需要工作......這在桌面級CPU中可能不是什麼大問題,但它在移動CPU中是一筆巨大的交易。事實上,您可以動態地動態化所有內容(這也可以節省CPU使用量),這對移動設備非常重要。試試這個,而不是'revalidate()'來應用佈局,只需使用'animateLayout(500)'......飛快移動。 –