《化羽Java GUI学习笔记》 我自己的学习笔记以后方便复习,也希望可以给找不到方法学习的人一点点帮助。如果有错误请大家告诉一下相互学习。
BoxLayout 布局管理器
1.BoxLayout是定义在javax.swing包中的布局管理器,它将容器中的组件按水平方向排成一行或按垂直方向排一列。当组件拍成一行时,每个组件可以有不同的宽度;当组件排成一 列时,每个组件可以有不同的 高度。
2.BoxLayout构造方法的格式:
BoxLayout(Containern target,int axis)
Container型参数target:要设置此BoxLayout布局管理器的容器。
int型参数axis:组件的排列方向。
BoxLayout.X_AXIS:水平方向排列
BoxLayout.y_AXIS:垂直方向排列
3.当容器的大小改变时,组件的相对位置不会发生变化。
import java.awt.*;
import javax.swing.*;
public class BoxLayoutDemo {
private JFrame frame;
private JPanel pv,ph;
public static void main(String[] args) {
BoxLayoutDemo that = new BoxLayoutDemo();
that.go();
}
void go() {
frame = new JFrame("Box Layout example");
Container contentPane = frame.getContentPane();
pv = new JPanel();
//将pv的布局管理器设置为垂直方向的BoxLayout
pv.setLayout(new BoxLayout(pv,BoxLayout.Y_AXIS));
//为pv添加标签label
pv.add(new JLabel("Monday"));
pv.add(new JLabel("Tuesday"));
pv.add(new JLabel("Wednesday"));
pv.add(new JLabel("Thursday"));
pv.add(new JLabel("Friday"));
pv.add(new JLabel("Staturday"));
pv.add(new JLabel("Sunday"));
//将pv添加到内容窗格的中部
contentPane.add(pv,BorderLayout.CENTER);
ph = new JPanel();
//将ph的布局管理器设置为水平方向的BoxLayout
ph.setLayout(new BoxLayout(ph,BoxLayout.X_AXIS));
//为ph添加按钮
ph.add(new JButton("Yes"));
ph.add(new JButton("No"));
ph.add(new JButton("Cancel"));
//将ph添加到内容窗格的南部
contentPane.add(ph,BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
}
}