JFrame圖解結構 有一視窗框架實例:JFrame win = new JFrame("視窗");在new JFrame()時,構建了JFrame實例對象,在實例中的Layered Pane層面版中,也預設構建了一個JPanel控制項面板。 使用 win.getContentPane( ); 是獲取 ...
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上面。