初始化
MigLayout layout = new MigLayout();
MigLayout layout = 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 指定在垂直方向的对齐方式。
添加组件
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!");