alignement du panneau java BoxLayout
J'ai parcouru environ et n'ont pas trouvé une solution spécifiquement adapte à ma situation. J'ai un panneau que j'affiche dans une boîte de dialogue:
//create dialog panel
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.add(headerPanel);
panel.add(type1Panel);
panel.add(type2Panel);
panel.add(type3Panel);
panel.add(type4Panel);
panel.add(type5Panel);
panel.add(type6Panel);
int result = JOptionPane.showConfirmDialog(null, panel, "Please enter values.", JOptionPane.OK_CANCEL_OPTION);
La taille des deux derniers panneaux, type5 & type6, sont de taille égale, de sorte qu'ils ont l'air bien. Cependant, l'en-tête et les 4 premiers panneaux sont de tailles différentes et je voudrais tous d'être aligné à gauche. Pour l'instant je n'ai pas trouvé une bonne solution que de comment résoudre ce problème.
Question est, comment puis-je être aligné à gauche de la première de 5 panneaux, mais pas les 2 derniers? Si non, comment puis-je être aligné à gauche? Le setalignmentx() n'est pas disponible pour les panneaux. J'ai essayé d'utiliser GridLayout, mais alors la largeur de l'interface graphique, la fenêtre principale est assez grande et ne rentre pas bien sur l'écran, d'où le BoxLayout long de l'axe Y.Merci pour toute aide ou suggestion.
source d'informationauteur whitewolfpgh
Vous devez vous connecter pour publier un commentaire.
Voici un exemple qui sera aligné à gauche tous la JPanels ajouté au panneau utilisé comme un conteneur.
Créer une horizontale javax.swing.Objet zone pour contenir chaque typenPanel objet. Utilisant les entretoises et la colle, vous pouvez faire ce que vous voulez:
Pour des raisons de simplicité, écrire une méthode d'aide à le faire pour vous:
Alors:
etc.... Vous pouvez obtenir de plus sophistiqué avec chaque ligne, l'ajout de composants, de la colle, et des entretoises. J'ai eu beaucoup de chance profondément nidification boîtes verticales et horizontales, et par écrit les méthodes d'aide quand je veux faire la même disposition dans une zone plus d'une fois. Il n'y a pas de limites à ce que vous pouvez faire, le mélange des composants, des jambes, et de la colle si nécessaire.
Je suis sûr qu'il ya une meilleure façon de faire tout cela, mais je n'ai pas encore trouvé. Et le redimensionnement dynamique permet à un utilisateur avec de courts morceaux de texte utilisez une petite fenêtre et un utilisateur avec beaucoup de texte redimensionner afin qu'il s'adapte à tous.
Vous devez utiliser
setAlignmentX
sur les panneaux parce qu'il est disponible pourJPanel
. Les méthodessetAlignmentX
etsetAlignmentY
sont trouvés dansJComponent
quiJPanel
s'étend. Il fonctionne...j'ai un code qui utilise ces méthodes pour aligner des JPanels dans unBoxLayout
.Ok, très bien, de modifier une question alors que je suis à répondre 🙂
Au lieu d'utiliser un Composite essayez d'utiliser un
. J'ai trouvé la
Box
classe très utile comme un conteneur. À partir de l'API:Si vous n'avez pas encore vu, le tutoriel Comment Utiliser BoxLayout est très utile.