JFrame的面板結構和JPanel的使用


JFrame圖解結構

有一窗口框架實例:JFrame win = new JFrame("窗口");
在new JFrame()時,構建了JFrame實例對象,在實例中的Layered Pane層面版中,也默認構建了一個JPanel控件面板。

使用 win.getContentPane( ); 是獲取JFrame實例win中默認構建的 JPanel控件面板,獲取到后可以往里布置 功能控件(如JButton)。

寫一個JPanel控件面板實例:JPanel panel = new JPanel( );

使用 win.setContentPane(panel); 是把 win 中的默認 JPanel控件面板 替換為自定義的 JPanel控制面板 panel。

使用 win.add(panel); 則是在 win 中的默認 JPanel控件面板上疊加布置了--自定義的JPanel控件面板panel,(JPanel是可以嵌套的)。

【總結】
使用JFrame窗體時:
1.可以通過JFrame.getContentPane( )獲取 JFrame窗體實例 默認構建的JPanel控件面板,然后往上布置功能控件。
2.可以通過JFrame.setContentPane(JPanel實例) 將 JFrame窗體實例 默認的 JPanel控件面板 替換成 自定義的JPanel控件面板。
3.可以通過JFrame.add(JPanel實例) 在 JFrame窗體實例 默認的 JPanel控件面板之上 疊加布置上自定義的JPanel控件面板。

【常見問題解決】
1.使用JFrame.setBackground(Color.pink)后無效果:
此時是對窗體的背景顏色設置,而窗體之上還有一個默認構建的JPanel是不透明白色,所以看不到給JFrame設置的顏色。
解決1:通過JFrame.getContentPane().setBackground(null);把JFrame默認構建的JPanel的顏色設置為null,那么窗體的背景顏色就顯示出來了。
解決2:通過JFrame.getContentPane().setOpaque(false);把JFrame默認構建的JPanel的不透明度設置為false純透明,那么窗體的背景顏色就顯示出來了。
解決3:直接通過JFrame.getContentPane().setBackground(xxx)將JFrame默認JPanel設置顏色,功能控件布置到它上面就行了,窗體顏色不用設置。
解決4:自定義JPanel設置它的背景顏色,通過JFrame.setContentPane(JPanel實例)將自定義JPanel設置為JFrame的默認JPanel。
解決5:自定義JPanel設置它的背景顏色,通過JFrame.add(JPanel實例)將自定義JPanel疊加布置到JFrame的默認JPanel上面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM