天天看點

Java中JFrame的getContentPane()和setContentPane()方法使用說明

首先來看一段代碼:

  1. package test; 
  2. import java.awt.Color; 
  3. import javax.swing.JFrame; 
  4. public class TestJFrame extends JFrame { 
  5.     public TestJFrame() { 
  6.         setColor.GREEN); < /span>
  7.         setBounds(200, 200, 400, 300); 
  8.         setTitle("JFrame測試"); 
  9.         setVisible(true); 
  10.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
  11.     }; 
  12.     public static void main(String[] args) { 
  13.         new TestJFrame(); 
  14.     } 

 運作可以看到,視窗出來了,但是我們并沒有看到視窗的背景色被設定為了GREEN綠色。這裡呢,JFrame并不能說是一個容器,它隻是一個架構,那麼我們怎麼給JFrame設定背景色呢?

方法一:我們可以使用getContentPane()方法得到JFrame的内容面闆,設定該内容面闆的背景色即可,代碼如下:

  1. package test; 
  2. import java.awt.Color; 
  3. import javax.swing.JFrame; 
  4. public class TestJFrame extends JFrame { 
  5.     public TestJFrame() { 
  6.         getContentPane().setColor.GREEN); < /span>
  7.         setBounds(200, 200, 400, 300); 
  8.         setTitle("JFrame測試"); 
  9.         setVisible(true); 
  10.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
  11.     }; 
  12.     public static void main(String[] args) { 
  13.         new TestJFrame(); 
  14.     } 

而更常見的一種方法呢,是先建立一個JPanel之類的容器,然後使用setContentPane()方法,把該容器設定為JFrame架構的内容面闆,然後再在該中間容器上面添加其他元件即可。這裡的JPanel就像中間媒體,或者我們可以了解為JFrame為畫闆,JPanel之類的中間容器為畫布,畫布要綁定在畫闆上,然後我們在畫布上面作畫。代碼如下:

  1. package test; 
  2. import java.awt.Color; 
  3. import javax.swing.JFrame; 
  4. import javax.swing.JPanel; 
  5. public class TestJFrame extends JFrame { 
  6.     public TestJFrame() { 
  7.         // getContentPane().setColor.GREEN);< /span> 
  8.         JPanel pnBasic = new JPanel(); 
  9.         pnBasic.setColor.GREEN); < /span>
  10.         setContentPane(pnBasic); 
  11.         setBounds(200, 200, 400, 300); 
  12.         setTitle("JFrame測試"); 
  13.         setVisible(true); 
  14.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
  15.     }; 
  16.     public static void main(String[] args) { 
  17.         new TestJFrame(); 
  18.     }