转: 二十八、Java图形化界面设计——中间容器(Jpanel)

时间:2021-03-24 09:46:09
http://blog.csdn.net/liujun13579/article/details/7762835

上一篇讲解了Jframe顶层容器,例子中生成了一个空的窗体,在实际编程过程中,一般很少将文本框、按钮等组件直接放在顶层容器中进行布局,大多数时候是通过布局管理器结合中间容器对组件进行布局设置。

1、  将组件添加到JFrame中

方式之一:

frame.getContentPane().add(childComponent)

用getContentPane()方法获得JFrame的内容面板,再对其加入组件,一般只使用该方式添加组件。

向JFrame中添加组件的两种方式之二:

把组件添加到Jpanel之类的中间容器中,用setContentPane()方法把该容器置为JFrame的内容面板:

Jpanel contentPane=new Jpanel( );

……//把其它组件添加到Jpanel中;

frame.setContentPane(contentPane);

:面板的嵌套

import java.awt.*;

import javax.swing.*;

class  TwoPanel extends JFrame {

public TwoPanel( String title){

super(title);

}

public static void main(String args[]) {

TwoPanel fr=new TwoPanel("Two Panel测试");

JPanel pan1 = new JPanel();

JPanel pan2 = new JPanel();

fr.setLayout(null);

fr.getContentPane().setBackground(Color.green);  //设置窗口的颜色

fr.setSize(250,250);

pan1.setLayout(null);                  //设置面板为空布局

pan1.setBackground(Color.red);

pan1.setSize(150,150);

pan2.setBackground(Color.yellow);

pan2.setSize(50,50);

pan1.add(pan2);   //将面板pan2添加到pan1中

//将pan1添加到窗体中,因为pan2被添加到pan1中,所以pan1、pan2都被显示在窗体中

fr.getContentPane().add(pan1);

fr.setVisible(true);

fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}