Java:对于Borderlayout布局管理的理解
第一种,简单额只有一层的东南西北中的分区管理就不介绍了,主要介绍第二种第二种,复杂的borderlayout布局,即在任何区中可以用容器(JPanel)来代替控件例如下图这种布局管理的思想是这样子的:1、可以把组件放在这五个位置的任意一个,如果未指定位置,则缺省的位置是CENTER。2、在东、西、南、北和中间位置添加中间容器,中间容器中再进行布局,并添加相应的组件,已达到复
·
第一种,简单额只有一层的东南西北中的分区管理就不介绍了,主要介绍第二种
第二种,复杂的borderlayout布局,即在任何区中可以用容器(JPanel)来代替控件
例如下图
这种布局管理的思想是这样子的:
1、可以把组件放在这五个位置的任意一个,如果未指定位置,则缺省的位置是CENTER。
2、在东、西、南、北和中间位置添加中间容器,中间容器中再进行布局,并添加相应的组件,已达到复制补间的效果。
3、南、北位置控件各占据一行,控件宽度将自动布满整行。东、西和中间位置占据一行;若东、西、南、北位置无控件,则中间控件将自动布满整个屏幕。若东、西、南、北位置中无论哪个位置没有控件,则中间位置控件将自动占据没有控件的位置。
4、强调一下container、Jpanel等的布局管理器是不可以共享的!!!每个容器都得有其自己的布局管理器
代码如下:
package hello;
import javax.swing.JFrame;
import javax.swing.*;
import java.awt.*;
import java.awt.BorderLayout;
public class Lay extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;//这一行必须要写!!!
private JButton[] contro=new JButton[9];//创建一个九个控件的控件数组
private String[] name={"5","01","02","03","04","1","2","3","4"};
private Container container;//创建容器;
private BorderLayout layout;//创建一个borderlayout布局控制器
private JPanel In=new JPanel();
public Lay()//构造函数
{
super("实例");
layout=new BorderLayout();
container=getContentPane();
container.setLayout(layout);//给定布局方式
for(int i=0;i<=8;i++)
{
contro[i]=new JButton(name[i]);
//container.add(contro[i]);
}
//container.add("Center", contro[0]);//中间的区域会空出来
container.add("North", contro[1]);
container.add("South", contro[2]);
container.add("East", contro[3]);
container.add("West", contro[4]);
In.setLayout(new BorderLayout());//每个容器都用其自己本身的布局管理器
//上述代码很重要!!!
In.add("North", contro[5]);
In.add("Center", contro[0]);
In.add("South", contro[6]);
In.add("East", contro[7]);
In.add("West", contro[8]);
container.add("Center",In);//将两个布局进行叠加
setVisible(true);
setSize(800,600);
}
public static void main(String[] args) {
Lay newpane=new Lay();
newpane.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
更多推荐
已为社区贡献2条内容
所有评论(0)