1. 初始化:
MigLayout l = new MigLayout();
MigLayout l = new MigLayout("","","");
主要使用的是以上两种构造函数,第一种无参的就不用介绍了,主要是第二种。
第一个参数可以使用以下语句:
wrap + 数字:指定默认在第几个组件后进行换行,如: wrap 2 表示在第二个组件后进行分行。
insets + 数字:指定默认与边界的距离,有两种方式:insets 10 表示四边均为10,insets 1 2 3 4 分别指示顶部、左侧、下部、右侧距离
第二个参数:指定横向的单元格的各个属性。每个单元格的属性用[]括起来。如[][][]表示一行有三个单元格。各单元格可以定制的属性如下:
grow: x 方向按上一级的宽度进行延伸。注意如果此处不添加grow,那么在添加组件的时候使用growx会没有效果。
40!: 表明该列的单元格宽度固定为40
10:30:40:表明该列的单元格宽度最小为10、最佳为30、最大为40
::40:表明该单元格最大值为40。其它也可以是:30: 或者:30::等。
center/right/left: 指定该组件在水平方向的对齐方式
同时,也可以指定各个单元格之间的间隔:[]30[][]说明第一个和第二个单元格之间相隔30
第三个参数:指定纵向的单元格的各个属性。
grow: 指定纵向是否进行延伸
::: :指定高度属性,与第二个参数意义一致。
top/bottom/center:指定在垂直方向的对齐方式。
2. 添加组件:
panel.add(button,"");
""里面使用各个参数,经常使用的有以下参数:
growx: 在水平方向延伸
growy:在垂直方向延伸
span:占用本行的所有单元格
span 2: 占用横向的两个单元格
span 2 3: 占用横向两个、纵向三个单元格
wrap: 添加本组件后进行分行
gapleft/gapright/gaptop/gapbottom: 指定四周的间隔
split 2: 将该单元格分成两个单元格
h ::: :指定高度属性,如h 10:20:30 或者h 10! 或者h ::20或者h :20:或者h 20::等。
w ::: :指定宽度属性
以下是例子:
代码:
this.setLayout(new MigLayout("insets 2","[grow][]","[grow][][][]")); this.add(new JScrollPane(historyArea),"growx,growy"); this.add(rightPanel,"wrap,w 140!,span 1 4,growy"); this.add(tb,"growx,wrap"); this.add(new JScrollPane(inputArea),"growx,h 80!,wrap"); this.add(closeButton,"split 2,h 24!,align right"); this.add(sendButton,"h 80!,h 24!");