设置BOXlayout的对齐方式
我的怎么是居中对齐啊 如何更改 展开
允许垂直或水平布置多个组件的布局管理器。
用水平组件和垂直组件的不同组合嵌套多面板的作用,
类似于GridBagLayout,但没那么复杂。
构造函数:BoxLayout(Container target, int axis)
target - 需要布置的容器
axis - 布置组件时使用的轴。它可以是以下之一:
BoxLayout.X_AXIS:从左到右水平布置组件
BoxLayout.Y_AXIS: 从上到下垂直布置组件
BoxLayout.LINE_AXIS: 根据容器的 ComponentOrientation 属性,按照文字在一行中的排列方式布置组件.如果容器的 ComponentOrientation 表示水平,则将组件水平放置,否则将它们垂直放置。对于水平方向,如果容器的 ComponentOrientation 表示从左到右,则组件从左到右放置,否则将它们从右到左放置。对于垂直方向,组件总是从上到下放置的。
BoxLayout.PAGE_AXIS: 根据容器的 ComponentOrientation 属性,按照文本行在一页中的排列方式布置组件.如果容器的 ComponentOrientation 表示水平,则将组件垂直放置,否则将它们水平放置。对于水平方向,如果容器的 ComponentOrientation 表示从左到右,则组件从左到右放置,否则将它们从右到左放置。对于垂直方向,组件总是从上向下放置的。
Demo:
import cn.wsl.util.MainFrameTmp;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.BoxLayout;
import java.awt.GridLayout;
public class BoxLayoutDemo extends MainFrameTmp{
public BoxLayoutDemo(){
setLayout(new GridLayout(4,1));
// 沿X轴放置
JPanel pane1 = new JPanel();
pane1.setLayout(new BoxLayout(pane1, BoxLayout.X_AXIS));
pane1.add(new JButton("btn11"));
pane1.add(new JButton("btn12"));
pane1.add(new JButton("btn13"));
pane1.add(new JButton("btn14"));
add(pane1);
// 沿y轴放置
JPanel pane2 = new JPanel();
pane2.setLayout(new BoxLayout(pane2, BoxLayout.Y_AXIS));
pane2.add(new JButton("btn21"));
pane2.add(new JButton("btn22"));
pane2.add(new JButton("btn23"));
pane2.add(new JButton("btn24"));
add(pane2);
//与容器的ComponentOrientation相同的放置
JPanel pane3 = new JPanel();
pane3.setLayout(new BoxLayout(pane3, BoxLayout.LINE_AXIS));
pane3.add(new JButton("btn31"));
pane3.add(new JButton("btn32"));
pane3.add(new JButton("btn33"));
pane3.add(new JButton("btn34"));
add(pane3);
//与容器的ComponentOrientation相反的放置
JPanel pane4 = new JPanel();
pane4.setLayout(new BoxLayout(pane4, BoxLayout.PAGE_AXIS));
pane4.add(new JButton("btn41"));
pane4.add(new JButton("btn42"));
pane4.add(new JButton("btn43"));
pane4.add(new JButton("btn44"));
add(pane4);
}
public static void main(String[] args){
run(new BoxLayoutDemo());
}
}
沿Y轴 默认就是左对齐
试试setComponentOrientation方法