2009-10-23 5 views

Répondre

2

Jetez un coup d'œil au GridBagLayoutManager. C'est le gestionnaire de mise en page le plus compex mais tout peut être accompli avec.

Il utilise le GridBagConstraintObject qui possède la propriété d'insertion, il spécifie la séparation entre les composants supérieur, inférieur, gauche et droit.

exemple: GridBagConstraintObject.insets.left = 20

2

Vous pouvez utiliser MiGLayout comme votre mise en page Il permet toutes sortes de personnalisations, y compris les marges/paddings

+0

Merci qui pourrait être un e meilleure solution mais actuellement je suis réticent à ajouter une autre dépendance au projet. – kroiz

1

Vous pouvez obtenir une bien meilleure mise en page pour l'exemple ci-dessus en utilisant DesignGridLayout en seulement quelques lignes de code (une par ligne dans votre mise en page). DesignGridLayout utilisera automatiquement l'espacement correct pour la plate-forme d'exécution. En outre je vous recommande vivement de ne pas utiliser TitledBorders dans votre formulaire, car il empêche TOUTE LayoutManager (aussi avancé que cela puisse être) d'aligner automatiquement les différents composants entre différents groupes. Au lieu de cela, vous pouvez utiliser un JLabel avec un JSeparator (il existe des exemples dans DesignGridLayout, mais cela fonctionne avec n'importe quel autre LayoutManager).

+0

oh, c'est ainsi que vous résolvez le problème de V align, merci beaucoup. À propos de DesignGridLayout comme je l'ai dit: Je suis réticent à ajouter une autre dépendance au projet. – kroiz

+0

pas de problème avec ça! Mais sachez que travailler avec du "pur" Swing (sans AUCUNE bibliothèque tierce, pas seulement pour la mise en page, mais aussi pour les tables, les widgets spéciaux ...) est une grosse douleur! Votre choix de toute façon ;-) – jfpoilpret

0

FormLayout est un autre bon gestionnaire de disposition. Avec un bon éditeur d'interface graphique comme JFormDesigner, il rend la création de GUI assez facile. JFormDesigner ajoute automatiquement un remplissage suffisant dans la plupart des cas. Je recommande de ne pas utiliser GridBagLayout. Il fait du bon travail, mais il est très complexe, ce qui le rend difficile à utiliser et à entretenir.

+0

peut-être, mais j'écris open source et JFormDesigner n'est pas gratuit. peut-être pour d'autres ... – kroiz

1

Depuis Java 1.6 swing, un nouveau gestionnaire GroupLayout facilite ce type de travail.

Par exemple il existe une méthode: setAutoCreateGaps() que:

... vous ajoutez deux composants à un SequentialGroup un écart entre les deux composants est automatiquement créé ...

Par exemple:

alt text http://java.sun.com/javase/6/docs/api/javax/swing/doc-files/groupLayout.example.png

+0

Cette mise en page semble super, je vais essayer. En utilisant GroupLayout, l'utilisateur doit-il avoir au moins Java 6 runtime? – kroiz

+0

C'est correct 1.6 est nécessaire. Je pense que si l'utilisateur a <1.6, vous pouvez prendre le code source de GroupLayout et l'expédier avec votre application. C'est open source après tout. J'aime mieux ça que GridbagLayout parce que vous n'avez pas besoin de tous ces objets gridbagcontraints :) – OscarRyz

Questions connexes