[java桌面应用开发]BorderLayout布局管理器————(2020.4.8学习笔记)

目录

第一节 BorderLayout布局管理器介绍
第二节 实例演示

01 BorderLayout布局管理器介绍

BorderLayout是顶层容器中内容窗格的默认布局管理器,它提供了一种较为复杂的组件管理方案。每个由BorderLayout管理的容器被划分成5个区域,分别代表容器的上部(North)、下部(South)、左部(West)、右部(East)和中部(Center),分别使用常量BorderLayout.NORTH、BorderLayout.SOUTH、BorderLayout.WEST、BorderLayout.EAST和BorderLayout.CENTER来表示。在容器的每个区域,可以加入一个组件。BorderLayout定义在java.awt包中,BorderLayout布局管理器有两种构造方法。
  • BorderLayout( ):构造一个组件之间没有间距的新的BorderLayout布局管理器。
  • BorderLayout(inthgap,intvgap):用指定的组件之间的水平和垂直间距构造一个BorderLayout布局管理器。在BorderLayout布局管理器的管理下,组件必须通过add( )方法加入到容器中的指定区域,例如,下面的语句将一个按钮加入到框架的South区:
  frame=new JFrame(”Frame Title“);
  button=new JButton(“Press Me“);
  frame.getContentPane( ).add(button,BorderLayout.SOUTH);//加入到South
  最后一行语句也可以写成:
  frame.getContentPane( ).add(button,“South”);
  如果在add( )方法中没有指定将组件放到哪个区域,则默认地会被放置在Center区域,
  例如:
  frame.getContentPane( ).add(button);语句,把按钮放在框架的中部。
  在容器的每个区域,只能加入一个组件,如果试图向某个区域中加入多个组件,那么只有最后一个组件是有效的。例如:
  frame.getContentPane( ).add(new JButton(“buttonA”),BorderLayout.SOUTH);
  frame.getContentPane( ).add(new JButton(“buttonB”),BorderLayoutSOUTH);
  frame.getContentPane( ).add(new JButton(“buttonC”),BorderLayout.SOUTH);
  最后只有buttonC显示在South区域。如果真的希望在某个区域显示多个组件,可以先在该区域放置一个内部容器,比如JPanel组件,然后将所需的多个组件放到JPanel中,再将其放到指定的区域。通过内部容器的嵌套可以构造复杂的布局。
  对于East、South、West和North这4个边界区域,如果某个区域没有使用,那么它的大小将变为零,此时Center区域将会扩展并占据这个未用区域的位置。如果4个边界区域均没有使用,那么Center区域将会占据整个窗口。

02 实例演示

实例代码如下

package com.java.pc;

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Subject {
	private JFrame frame;
	private JButton be,bw,bn,bs,bc;
	
   public static void main(String args[])
   {
	   Subject s=new Subject();
	   s.go();
   }
   public void go()
   {
	   frame=new JFrame("Border Layout");
	   be=new JButton("East");
	   bs=new JButton("Sourth");
	   bw=new JButton("WEST");
	   bn=new JButton("North");
	   bc=new JButton("Center");
	   frame.getContentPane().add(be,BorderLayout.EAST);
	   frame.getContentPane().add(bs,BorderLayout.SOUTH);
	   frame.getContentPane().add(bw,BorderLayout.WEST);
	   frame.getContentPane().add(bn,BorderLayout.NORTH);
	   frame.getContentPane().add(bc,BorderLayout.CENTER);
	   frame.setSize(350, 200);
	   frame.setVisible(true);
	   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
}

最后效果如下
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值