java - MigLayout "wrap"行为不一致

标签 java swing miglayout

我正在使用 MigLayout 将组件添加到 Java 中的 JPanel。 我的问题是,尽管在单元格约束中添加了“wrap”,但它并不能始终如一地工作。有些组件会换行,有些则不会 - 特别注意图像中的最后一行(应该是 2 行)。

JPanel panel = new JPanel(new MigLayout("gap 0, insets 0", "",""));

JButton delete = new JButton("Delete");
JButton zoomSel = new JButton("Zoom Sel");
JButton zoomReset = new JButton("Zoom Reset");

panel.add(delete, "span 2 2, grow");
panel.add(zoomSel, "spanx 2, growx, wrap");
panel.add(zoomReset,"growx,wrap 5");

JButton cut = new JButton("Cut");
JButton copy = new JButton("Copy");
JButton paste = new JButton("Paste");
JButton loopSelRgn = new JButton("Loop Sel. Rgns");
JButton selRgnRow = new JButton("Sel Rgns Row");

panel.add(cut);
panel.add(copy);
panel.add(loopSelRgn, "spanx 2, growx, wrap");
panel.add(paste, "spanx 2, growx");
panel.add(selRgnRow, "spanx 2,growx,wrap 5");

JButton duplicate = new JButton("Duplicate");
JButton selectAll = new JButton("Select All");
JButton mute = new JButton("Mute");
JButton shift = new JButton("Shift");

panel.add(duplicate, "span 2 2, grow");
panel.add(selectAll, "span 2 2, grow, wrap");

panel.add(mute, "spanx 2, growx");
panel.add(shift, "spanx 2, growx");

编辑:感谢大家的回答,尽管我的解决方案是改用百分比约束来设置高度,而不是依赖跨度。这似乎解决了包装中出现的奇怪问题。

最佳答案

我不明白为什么你要使用wrap 5,而看起来你需要4。我相信只需简单地实现你想要的

  • wrap 4 添加到第一个构造函数参数
  • 在需要时对每个最后一行组件使用 wrap (不带参数)

关于java - MigLayout "wrap"行为不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21149028/

相关文章:

swing - 使用 JComponents 时的命令模式有用性

java - 信件被接受为双份

Java:MigLayout Center 中心不工作 |绝对定位的替代方案

java - 将 cacert curl 到 Java HttpClient 等价物

java - Spring-Mvc - JdbcDaoSupport 错误

java - 在LinkedList开头插入的时间复杂度

java - MigLayout 行高和更改字体大小

JAVA drawPolygon() - 参数说明

java - 让 JList 扩展以填充控件?

java - 如何使用 MigLayout 控制面板的整体尺寸限制?