如何防止MigLayout超出容器的边界限制

6
我正在尝试使用MigLayout构建一个简单的状态面板,如下所示:
setLayout(new MigLayout("fillx", "[][p]")); // removing constructor args makes no difference
add(createStatusLabel(), "span 2, wrap");
add(createProgressBar(), "growx, pushx");
add(createCancelButton(), "");

只要状态标签显示的状态消息足够短,适合当前面板的大小(取消按钮仍然右对齐,进度条调整大小以占用剩余空间),这个方法就能很好地工作。如果状态消息太长,则不会被裁剪,并导致区域超出容器的范围,从而导致取消按钮被推出屏幕。
有什么建议可以防止这种情况发生吗?
谢谢
1个回答

9
尝试将标签的最大宽度设置为100%。
您可以通过将标签的布局更改为“span 2,wrap,wmax 100%”来实现此目的。
在我的测试中,我发现它看起来仍然不太对,因此您可能需要减去一点长度(例如“wmax 100%-10px”)以使其远离边缘。

1
谢谢 - 我刚刚登录来回答自己的问题,使用了相同的解决方案,但你比我更快。我也发现100%太大了 - 可能没有考虑到边框或插入物。我还尝试在宽度表达式中使用"parent"引用,但我发现MigLayout不再允许这样做。(我会给你点赞,但我还没有足够的积分) - zorgbargle
这就是为什么我喜欢互联网。谢谢你们俩! - Adam K Dean

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接