java 关于setContentPane与getContentPane

此文为转载,请大家到原网址看,本人只是为了查找方便。

原网址:http://www.it165.net/pro/html/201301/4662.html

首先来看一段代码:

package test; 

import java.awt.Color; 

import javax.swing.JFrame; 

public class TestJFrame extends JFrame { 
    public TestJFrame() { 
        setColor.GREEN); < /span>
        setBounds(200, 200, 400, 300); 
        setTitle("JFrame测试"); 
        setVisible(true); 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    }; 

    public static void main(String[] args) { 
        new TestJFrame(); 
    } 
} 

运行可以看到,窗口出来了,但是我们并没有看到窗口的背景色被设置为了GREEN绿色。这里呢,JFrame并不能说是一个容器,它只是一个框架,那么我们怎么给JFrame设置背景色呢?

方法一:我们可以使用getContentPane()方法得到JFrame的内容面板,设置该内容面板的背景色即可,代码如下:

package test; 

import java.awt.Color; 

import javax.swing.JFrame; 

public class TestJFrame extends JFrame { 
    public TestJFrame() { 
        getContentPane().setColor.GREEN); < /span>
        setBounds(200, 200, 400, 300); 
        setTitle("JFrame测试"); 
        setVisible(true); 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    }; 

    public static void main(String[] args) { 
        new TestJFrame(); 
    } 
} 

而更常见的一种方法呢,是先新建一个JPanel之类的容器,然后使用setContentPane()方法,把该容器设置为JFrame框架的内容面板,然后再在该中间容器上面添加其他组件即可。这里的JPanel就像中间介质,或者我们可以理解为JFrame为画板,JPanel之类的中间容器为画布,画布要绑定在画板上,然后我们在画布上面作画。代码如下:

package test; 

import java.awt.Color; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class TestJFrame extends JFrame { 
    public TestJFrame() { 
        // getContentPane().setColor.GREEN);< /span> 
        JPanel pnBasic = new JPanel(); 
        pnBasic.setColor.GREEN); < /span>
        setContentPane(pnBasic); 
        setBounds(200, 200, 400, 300); 
        setTitle("JFrame测试"); 
        setVisible(true); 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    }; 

    public static void main(String[] args) { 
        new TestJFrame(); 
    } 
} 

你可能感兴趣的:(java)