2011-05-22 66 views

回答

4

只要孩子是一個輕量級的組件,它將被限制在父組件的邊界上。但是,如果它太大,它會被切斷,不會進行縮放。

如果孩子是重量較重的成分,而父親是輕量級成分,則孩子將被呈現在父親範圍之外。

有關於這個在這裏一個非常好的文章:http://java.sun.com/developer/technicalArticles/GUI/mixing_components/index.html(不記得誰叫我去,但感謝!)

還有一更新,這點我是不知道的(在鏈接):

作爲JDK 6更新12和JDK 7 構建19點釋放,現在有可能 到相同 容器內混合無縫重量級和 輕量級組件。

+0

不錯的個人資料圖片 – Enrique 2011-05-22 21:46:53

+0

@恩裏克 - 謝謝:)它適合我的生活;) – MByD 2011-05-22 21:48:44

1

其實您可以重置paint()方法中使用的Graphics實例的剪輯邊界。 JUst保存舊剪輯,設置新剪貼畫,在父界面外繪製原始剪貼畫。

+0

這會干擾Swing的重繪機制嗎?每當Swing需要重繪部分屏幕時,它是否會檢查重繪區域是否位於父組件中,如果不是,則不會打擾繪製其子組件? – 2011-05-23 09:48:25

+0

就像我知道的那樣,它只是設置剪輯邊界。由子組件檢查剪輯並重新繪製僅需要的部分 – StanislavL 2011-05-23 13:56:48