【问题标题】:miglayout question about columns关于列的 miglayout 问题
【发布时间】:2011-05-04 01:43:22
【问题描述】:

我希望列中的一些控件看起来像这样,但有一行是例外:

+----+------------------+----+--------------------+
| X1 | Y1               | X5 | Y5                 |
+----+------------------+----+--------------------+
| X2 | Y2               | X6 | Y6                 |
+----+------------------+----+--------------------+
| X3 | Y3               | X7 | Y7                 |
+----+-----+------------+----+--------------------+
| Special1 |  Special 2 with long description     |
+----+-----+------------+----+--------------------+
| X4 | Y4               | X8 | Y8                 |
+----+------------------+----+--------------------+

我想知道如何使用 MigLayout。我正在使用带有精简 YAML 语法的 Swing JavaBuilders:

X1        Y1               X5    Y5
X2        Y2               X6    Y6
X3        Y3               X7    Y7
Special1     Special2
X4        Y4               X8    Y8

我基本上想做的是让一行(Special1/Special2)异常,但我不知道该怎么做(上面的 YAML 片段不正确)。

【问题讨论】:

    标签: java swing miglayout javabuilders


    【解决方案1】:

    应该这样做:

    public static void main(String[] args)
    {
        JFrame frame = new JFrame("Test");
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setPreferredSize(new Dimension(400, 250));
    
        Container cp = frame.getContentPane();
        cp.setLayout(new MigLayout("fill, debug"));
    
        String wrap = "wrap,";
        String span2 = "spanx 2,";
        String span3 = "spanx 3,";
    
        cp.add(new JLabel("X1"));
        cp.add(new JLabel("Y1"), span2);
        cp.add(new JLabel("X5"));
        cp.add(new JLabel("Y5"), wrap);
        cp.add(new JLabel("X2"));
        cp.add(new JLabel("Y2"), span2);
        cp.add(new JLabel("X6"));
        cp.add(new JLabel("Y6"), wrap);
        cp.add(new JLabel("X3"));
        cp.add(new JLabel("Y3"), span2);
        cp.add(new JLabel("X7"));
        cp.add(new JLabel("Y7"), wrap);
        cp.add(new JLabel("Special 1"), span2);
        cp.add(new JLabel("Special 2 with long description"), span3 + wrap);
        cp.add(new JLabel("X4"));
        cp.add(new JLabel("Y4"), span2);
        cp.add(new JLabel("X7"));
        cp.add(new JLabel("Y8"));
    
        frame.pack();
        frame.setVisible(true);
    }
    

    享受吧。

    【讨论】:

    • 啊,抱歉 .. 不理解(知道)SwingBuilders/YAML。我会在这里留下我的答案,因为它可能会帮助您概念化您的解决方案,但显然它并不能解决您的问题......
    • +1 用于非 Javabuilders 示例(不是我会使用它,但它让我思考事情)。 “调试”是做什么的?
    • 显示布局边框,以便您查看发生了什么。 migcalendar.com/miglayout/cheatsheet.html
    猜你喜欢
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 2012-06-13
    • 2013-04-23
    • 2011-01-12
    • 1970-01-01
    相关资源
    最近更新 更多