2010-11-02 6 views
0

J'ai quelques contrôles dans les colonnes que je voudrais ressembler à ceci, et il y a une ligne qui est une exception:question miglayout sur les colonnes

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

et je me demandais comment le faire avec MigLayout. J'utilise JavaBuilders Swing avec sa syntaxe YAML condensée: une exception, mais je ne suis pas sûr de savoir comment faire (

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

Ce que je voudrais essentiellement que faire est de faire une ligne (le Spécial 1/Special2) la au-dessus du fragment YAML n'est pas correct).

Répondre

2

cela devrait le faire:

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

profiter.

+0

ah, désolé .. ne comprenait pas (savoir) SwingBuilders/YAML. Je vais laisser ma réponse ici car cela pourrait vous aider à conceptualiser votre solution mais évidemment cela ne résout pas votre problème ... – pstanton

+0

+1 pour un exemple nonJavabuilders (pas que je vais l'utiliser, mais ça me fait penser à des choses) . Que fait "debug"? –

+0

affiche les bordures de la disposition afin que vous puissiez voir ce qui se passe. http://migcalendar.com/miglayout/cheatsheet.html – pstanton