将组件置于包含具有MigLayout的另一个组件的行上

时间:2017-08-25 14:49:25

标签: java miglayout

是否有任何简单的方法可以将按钮放在行的中心,按钮左侧有一个加载指示器而不移动按钮本身?

我希望按钮始终居中,并且加载指示器(JLabel)应该位于按钮侧面。

This solution seems way too complicated and doesn't actually work for what I want to do.

到目前为止我所拥有的是:

setLayout(new MigLayout("align center center"));

add(_loadingIndicator, "center, split 2");
add(_applyButton, "center");

但是将两个组件集中在一起,因此按钮永远不会真正居中。

1 个答案:

答案 0 :(得分:0)

让按钮完全位于中心的方法是让您的布局有3列。您将按钮放在中间一个,加载指示器放在右侧。 假设加载指示符是32x32像素。

setLayout(new MigLayout("debug", "[grow]32px[]0[grow]")); // The [][][]s are columns, meaning 3 columns. The numbers between them are the insets.

add(_applyButton, "cell 1 0"); // Place the button in 2nd column, 1st row.
add(_loadingIndicator, "cell 2 0"); // Place the indicator in 3rd column, 1st row.

注意:如果你没有指定插图,按钮将是大约。居中,但不完全在中心。 debug参数可帮助您查看单元格的大小。你可以简单地省略它。