您的位置:首页 > 编程语言 > Java开发

Java:对于Borderlayout布局管理的理解

2017-06-02 18:33 411 查看
第一种,简单额只有一层的东南西北中的分区管理就不介绍了,主要介绍第二种

第二种,复杂的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);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: