有没有办法让MigLayout忽略组件的高度?
下面是一个测试示例:

我在第一行有一个超大的组件(右上角的“大”按钮),还有一个JPanel,它有一个或多或少的三角形,横跨整个第二行。
我想让MigLayout在选择第一行的大小时忽略“大”按钮的高度,因为我知道它与我的第二行组件重叠是可以的。
我该怎么做呢?
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import net.miginfocom.swing.MigLayout;
public class IgnoreComponentHeight {
public static void main(String[] args) {
JFrame jf = new JFrame("ignore component height test");
JPanel p = new JPanel();
p.setLayout(new MigLayout("","[] [] [] []", ""));
p.add(new JButton("one"), "");
p.add(new JButton("two"), "");
p.add(new JButton("three"), "");
JButton big = new JButton("big");
big.setPreferredSize(new Dimension(40,80));
p.add(big, "wrap");
JPanel tripanel = new JPanel();
tripanel.setLayout(new MigLayout("","[] [] [] []", ""));
int k = 0;
for (int i = 0; i < 4; ++i)
{
for (int j = 0; j <= i; ++j)
{
tripanel.add(new JButton("tri"+k), j == i ? "wrap" : "");
++k;
}
}
p.add(tripanel, "span,wrap");
jf.setContentPane(p);
jf.pack();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}
}发布于 2011-02-16 04:27:59
也许你正在寻找的是"spany 2“或者像"pos viewal.x2-pref-5 5”这样的绝对定位。
查看MigLayout网页并加载swing演示。然后转到绝对定位部分。您可以右键单击组件并尝试那里的约束,这将帮助您拨入真正想要的内容。
p.add(new JButton("three"), "wrap");
JButton big = new JButton("big");
big.setPreferredSize(new Dimension(40, 80));
p.add(big, "pos visual.x2-pref-5 5");https://stackoverflow.com/questions/5008051
复制相似问题