2014-07-01 129 views
1

爲什麼它被認爲是糟糕的編程形式,將組件擺放到框架上而不是面板中?當我直接將組件添加到框架上時,並沒有真正出現任何問題,所以我想知道爲什麼我看過的所有學習視頻甚至是GUI Window Builder都安裝了面板組件的地方Java Swing組件放置

回答

1

當您添加使用JFrame#add(Component)將組件直接添加到框架,但實際上將其添加到框架的內容窗格中,該窗格是一個JPanel。

額外的面板允許更具體的細節,這就是爲什麼你可能會看到多個面板。我認爲它會被折磨的主要原因是您應該分開維護「組件區域」(內容窗格)和框架(邊框),以避免混淆。就我個人而言,我不在乎太多,更多的是個人喜好。

如前所述,JFrames與他們自己的內容窗格捆綁在一起,當使用JFrame#add(Component)添加組件時使用它。如果您真的感興趣,請查看該方法的源代碼。

另一個問題是使用paint方法。如果您重寫JFrame的繪畫方法,則可能會影響邊框;可以使用一個單獨的面板

+0

感謝您的直截了當的答案:) – Moyo2k

0

除了上述原因被避免的東西,另一個原因是,使用的JFrame的默認的contentPane,我們不能設置邊框的components.Here an example