目录
第一节 BoxLayout布局管理器介绍
第二节 实例演示
01 BoxLayout布局管理器介绍
BoxLayout是定义在javax.swing包中的另一种常用布局管理器,它将容器中的组件按水平方向排成一行或按垂直方向排成一列。当组件排成一行时,每个组件可以有不同的宽度;当组件排成一列时,每个组件可以有不同的高度。BoxLayout构造方法只有一个,其格式如下。
BoxLayout(Container target,int axis):创建一个将沿给定轴放置组件的布局管理器。
其中,Container型参数target指明是为哪个容器设置此BoxLayout布局管理器,int型参数axis指明组件的排列方向,通常使用的是常量BoxLayout.X_AXIS或BoxLayout.Y_AXIS,分别表示按水平方向排列或按垂直方向排列。
上述程序是一个使用BoxLayout的例子,其中使用了两个JPanel容器,它们的布局管理器分别为垂直和水平方向的BoxLayout。JPanel容器中加入了若干标签和按钮,并被添加到frame内容窗格的中部和下部,当容器的大小改变时,组件的相对位置不会发生变化。
02 实例演示
实例代码如下
package com.java.pc;
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.*;
public class Subject {
private JFrame jframe;
private JPanel pv,ph;
public static void main(String args[])
{
Subject that=new Subject();
that.go();
}
void go()
{
jframe=new JFrame("Box Layout example");
Container contentPane=jframe.getContentPane();
pv=new JPanel();
pv.setLayout(new BoxLayout(pv,BoxLayout.Y_AXIS));
pv.add(new JLabel(" First"));
pv.add(new JLabel(" Second"));
pv.add(new JLabel("Third "));
contentPane.add(pv,BorderLayout.CENTER);
ph=new JPanel();
ph.setLayout(new BoxLayout(ph,BoxLayout.X_AXIS));
ph.add(new JButton("Yes "));
ph.add(new JButton("No "));
ph.add(new JButton("Cancel"));
contentPane.add(ph,BorderLayout.SOUTH);
jframe.pack();
jframe.setVisible(true);
}
}
最后效果图如下