2010-11-02 56 views
0

我有,我想是這樣的列的一些控制,並有一排是一個例外:有關列miglayout問題

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

,我想知道如何與MigLayout做到這一點。我使用的Swing JavaBuilders其濃縮YAML語法:

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

我基本上想要做的是使一個行(Special1/SPECIAL2)例外,但我不知道如何做到這一點(的以上YAML片段不對)。

回答

2

這應該這樣做:

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); 
} 

享受。

+0

啊,抱歉..不明白(瞭解)SwingBuilders/YAML。我會在這裏留下我的答案,因爲它可能會幫助你理解你的解決方案,但顯然它不能解決你的問題... – pstanton 2010-12-22 07:36:51

+0

+1對於非Jvavailder示例(不是我會使用它,但它讓我思考的東西) 。 「調試」是做什麼的? – 2010-12-22 13:19:54

+0

顯示佈局邊框,以便您可以看到發生了什麼。 http://migcalendar.com/miglayout/cheatsheet.html – pstanton 2010-12-22 20:54:10