java - 使用 miglayout 设置宽度

标签 java swing user-interface layout-manager miglayout

我正在尝试布置组件并希望以特定方式设置宽度。据我了解,miglayout 将宽度设置为“width min:pref:max”。所以就我而言,我想要以下内容:

layout explained

我的问题是 comp2。它在大约 200 像素后停止增长,我不知道为什么,因为我没有指定最大宽度。

我还检查了 miglayout swing 演示,但那里没有我的确切案例。他们有一个无限宽度的,但没有指定最小宽度。

为了确保面板展开,我将面板的背景设置为灰色,我可以看到它展开时没有任何问题。

如果有任何需要澄清的地方,请告诉我,我很乐意尝试更好地解释。

编辑:这是一个 SSCCE

import java.awt.Color;
import javax.swing.*;
import net.miginfocom.swing.MigLayout;

public class SSCCE {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        JPanel panel = new JPanel(new MigLayout(
                "",
                "[grow, fill]",
                ""));
        panel.setBackground(Color.LIGHT_GRAY);

        JButton comp1 = new JButton("Comp1");
        JButton comp2 = new JButton("Comp2");
        JButton comp3 = new JButton("Comp3");

        panel.add(comp1, "width 50:150:150, growx");
        panel.add(comp2, "growx");
        panel.add(comp3, "width 50:70:70, growx");      

        frame.add(panel);
        frame.pack();
        frame.setVisible(true);     
    }
}

我确实长大了,但我希望它占用所有可用空间,但它没有。会不会和面板上的设置有关?

编辑 2:使用此代码:

panel.add(comp1, "width 50:150:150");
panel.add(comp2, "width 10:n:n");
panel.add(comp3, "width 50:70:70, right");  

我明白了:

enter image description here

但我希望中间组件占据所有可用空间。

最佳答案

感觉自由:-)

这是一个为中间列提供所有额外空间的片段。

JPanel panel = new JPanel(new MigLayout(
        "debug",
        "[][grow, fill][]",
        ""));
JButton comp1 = new JButton("Comp1");
JButton comp2 = new JButton("Comp2");
JButton comp3 = new JButton("Comp3");

panel.add(comp1, "width 50:150:150");
panel.add(comp2); 
panel.add(comp3, "width 50:70:70");      

关于java - 使用 miglayout 设置宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17530333/

相关文章:

java - 使用 mouseentered 事件突出显示多边形

java - Swing 应用程序不运行

php - 基于 MySQL 的 Web 应用程序 : Easiest way for users to choose order or items?

java - 进程间通信

java - 小程序未找到类异常

.net - .NET UI 元素线程限制的原因

java - 将计时器添加到 Java Swing

java - 流式传输 protoBuf 消息的设计模式

java - EclipseLink JPA : remove and persist in the same transaction, 约束错误

java - 继承中的 ArrayStoreException