我正在使用 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/