8
votes

Alignement mélangé avec Java Swing's Graplayout

J'essaie de construire une fenêtre d'interface graphique dans mon application. Ce que j'essaie de faire est d'avoir une fenêtre, avec quelques boutons en haut et une grande zone de texte. Quelque chose comme ceci: xxx pré>

Je suis presque là, en utilisant grouplayout: p>

  layout.setHorizontalGroup(
    layout.createParallelGroup()
      .addGroup(layout.createSequentialGroup()
        .addComponent(button1)
        .addComponent(button2))
        .addComponent(closeWindow))
      .addComponent(textarea1)
  );

  layout.setVerticalGroup(
    layout.createSequentialGroup()
      .addGroup(layout.createParallelGroup()
        .addComponent(button1)
        .addComponent(button2)
        .addComponent(button3))
      .addComponent(textarea)
  );


0 commentaires

3 Réponses :


3
votes

Essayez d'ajouter: xxx

après le deuxième bouton. Le max_value fera élargir le vide autant que nécessaire.


0 commentaires

11
votes

Ajouter un espace dans votre groupe séquentiel. Laissant votre groupe horizontal tel quel: xxx

L'écart avec ces paramètres agit comme un "printemps", prenant tout espace disponible.


2 commentaires

Devrait être "layouttyle.componentplacement.Related", mais autre que cela fonctionne bien, merci :)


Bonjour, si vous n'ajoutez que cette ligne au groupe vertical ou également au groupe horizontal?



1
votes

Vous souhaitez utiliser addPreferredGap () qui n'est disponible que sur des groupes séquentiels. Le code ci-dessous vous donne la mise en page souhaitée.

    layout.setHorizontalGroup(
            layout.createParallelGroup()
                    .addGroup( layout.createSequentialGroup()
                            .addComponent( button1 )
                            .addComponent( button2 )
                            .addPreferredGap( LayoutStyle.ComponentPlacement.RELATED, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE )
                            .addComponent( button3 ) )
                    .addComponent( textArea )
    );
    layout.setVerticalGroup(
            layout.createSequentialGroup()
                    .addGroup( layout.createParallelGroup()
                            .addComponent( button1 )
                            .addComponent( button2 )
                            .addComponent( button3 ) )
                    .addComponent( textArea )
    );


0 commentaires