JFrame圖解結構框架
有一窗口框架實例:JFrame win = new JFrame("窗口");
在new JFrame()時,構建了JFrame實例對象,在實例中的Layered Pane層面版中,也默認構建了一個JPanel控件面板。spa
使用 win.getContentPane( ); 是獲取JFrame實例win中默認構建的 JPanel控件面板,獲取到後能夠往裏佈置 功能控件(如JButton)。對象
寫一個JPanel控件面板實例:JPanel panel = new JPanel( );blog
使用 win.setContentPane(panel); 是把 win 中的默認 JPanel控件面板 替換爲自定義的 JPanel控制面板 panel。get
使用 win.add(panel); 則是在 win 中的默認 JPanel控件面板上疊加布置了--自定義的JPanel控件面板panel,(JPanel是能夠嵌套的)。im
【總結】
使用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上面。img