2010-12-18 44 views
8

我讀過JFrame由幾個窗格組成,什麼是窗格,爲什麼Jframe是由窗格組成的? 爲什麼有一個JPanel,雖然看起來JFrame看起來和JPanel完全一樣,但是有一個菜單欄和一個關閉按鈕,所以對JPanel有什麼需求?任何人都可以清楚地向我解釋這3個組件的定義和用法嗎?框架,窗格或面板在鞦韆中的用途是什麼?

回答

15

有頂級容器,如JFrame。這些可以作爲構建GUI的主窗口。

然後有中級容器。這些必須放在其他容器中,它們不能單獨存在。它們可以幫助您組織組件或添加功能。 JPanel是一個非常簡單的容器,可以幫助您組織其他組件。 JSplitPane添加了兩個可變大小的窗格。

當您有一個複雜的GUI時,您可能想使用JPanel來組織GUI的各個區域,然後將每個面板添加到您的JFrame中。

在Java中,Swing API使用Composite Design Pattern。這意味着您可以從其他對象編寫非常複雜的對象,並仍然以與簡單對象相同的方式處理複合對象。所以你可以把JPanel放到JPanel中,它仍然像JPanel一樣。

想象它像一個滑車箱(或針線包)。它由一個大容器組成。但是,與其將許多小物件放入這個大容器中,並且以後難以管理,您可以在大箱子中放置一些較小的隔間。然後鉤子和墜子等進入隔間。它更易於管理。大框是JFrame,隔間是JPanel。

+2

我明白了......但我還有另外一個問題。在我的書中,有一個JFrame的圖形說它由幾個窗格組成:根窗格,分層窗格,內容窗格和玻璃窗格對於所有這些都需要什麼?並且是一個窗格==一個面板??! – Ahmed 2010-12-18 19:15:06

+2

框架是非常複雜的對象,需要迎合大量的情況。他們應該在許多不同的平臺上表現出類似的行爲。要做到這一點,有必要將各種事情的責任分解爲各自的組成部分。此頁面:http://download.oracle.com/javase/7/docs/api/javax/swing/JRootPane.html我幫助您瞭解您提到的某些窗格的用途。 – 2010-12-18 19:22:27