Java GUI编程(7)---边界布局BorderLayout

BorderLayout把容器的的布局分为五个位置:依次对应为:

上北(NORTH)、下南(SOUTH)、左西(WEST)、右东(EAST),中(CENTER)

BorderLayout特征

1若东、西、南、北位置无控件,则中间控件将自动布满整个屏幕。

2若东、西、南、北位置中无论哪个位置没有控件,则中间位置控件将自动占据没有控件的位置。

3南、北位置控件各占据一行,控件宽度将自动布满整行。

4如果未指定位置,则缺省的位置是CENTER

构造函数

BorderLayout(): //组件之间没有间距(默认间距为0像素)

BorderLayout(int hgap, int vgap) : //组件间距(hgap为横向间距,vgap为纵向间距)

常用方法

setHgap(int hgap)  //设置组件之间的水平间距

setVgap(int vgap)  //设置组件之间的垂直间距

pack()  //容器的方法,根据组件大小,自动调整窗体大小

演示代码

package com.msh.util;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import static javax.swing.WindowConstants.DISPOSE_ON_CLOSE;
public class DemoBorderLayout {

    public static void main(String[] args) {
        JFrame jf=new JFrame("演示容器的BorderLayout(边界布局)");
        jf.setSize(400,300);
        BorderLayout bL =new BorderLayout(5,5);//组件间距(横向间距5,纵向间距5)
        jf.setLayout(bL);
        //jf.setFont(new Font("宋体", Font.BOLD, 14));
        jf.add(new Button("btn-East"),BorderLayout.EAST);
        jf.add(new Button("btn-West"),BorderLayout.WEST);
	jf.add(new Button("btn-South"),BorderLayout.SOUTH);
	jf.add(new Button("btn-North"),BorderLayout.NORTH);
	jf.add(new Button("btn-Center"),BorderLayout.CENTER);
        JPanel jp=new JPanel();
        jp.setLayout(new FlowLayout(1,5,5)); //中间容器流式布局
        for(int i=0;i<10;i++)
        {             
          JButton b=new JButton(String.valueOf(i));
          jp.add(b);
        }
        //jf.add("Center",jp);  //将面板添加到中间位置

        jf.pack(); //让窗体自适应组建大小
        jf.setSize(400, 200);
        //jf.setLocation(400, 300);
        jf.setLocationRelativeTo(null);  //让窗体居中显示
        jf.setBackground(Color.white);
        jf.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        jf.setVisible(true);
    }
    
}

注销这行代码 //jf.add("Center",jp);

运行程式

更复杂的布局可以在东、西、南、北和中间位置设置为中间容器,中间容器中再进行布局组件

举例,在中间位置中添加10个按钮

生效这行代码  jf.add("Center",jp);

运行程式

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值