Démarrage de GridBagLayout à partir du coin supérieur gauche dans Java Swing
Je suis nouveau sur Java Swing et j'ai eu du mal à démarrer le GridBagLayout de coin en haut à gauche de sorte que c.gridx=0 c.gridy=0 mettrai mon objet sur le coin supérieur gauche.
Je vous en serais reconnaissant si vous pouviez m'aider en disant ce que je dois faire après ce point:
JPanel panel = new JPanel(new GridBagLayout());
frame.add(panel);
GridBagConstraints c = new GridBagConstraints();
Je sais que je dois utiliser du nord-ouest ou FIRST_LINE_START constantes, mais je ne sais pas comment. J'ai essayé de le faire de cette façon", mais il n'a pas réalisé les constantes.
frame.getContentPane().add(panel, BorderLayout.NORTHWEST);
Merci pour votre aide.
source d'informationauteur Emir
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser votre
GridBagConstraints
'anchor
de la propriété. Cela devrait le faire pour vous:Je ne suis pas de garantie que vous n'aurez pas à définir d'autres propriétés de l'contraintes de l'objet pour obtenir la mise en page que vous désirez. En particulier, vous devrez peut-être définir
widthx
etwidthy
être1
de sorte que le panneau prend tout l'espace disponible.Lire la section de la Balançoire tutoriel sur la Comment Utiliser le GridBagLayout. La qui figure sur "weightx,lourds": le
Sauf si vous spécifiez au moins une valeur non nulle pour weightx ou lourde, tous les composants de regrouper dans le centre de leur conteneur.
Pour ceux, qui utilise l'IDE (par exemple, NetBeans), j'ai enfin trouvé une belle astuce: si vous souhaitez ajouter des composants à haut et à l'utilisation de leur choix de tailles: ajouter un autre vide panneau de poids = 1.0. Copié à partir du code généré automatiquement (NetBeans):
une façon simple et rapide:
ajouter un vide JLabel à la fin de la page:
si vous voulez la grille pour aller tout le chemin vers le haut, il suffit de régler l'ensemble de vos poids = 0 jusqu'à ce que le dernier élément, le régler à n'importe quel nombre supérieur à 0, il sera en fait pousser le reste de l'boutons vers le haut.
N'oubliez pas également incrément de votre bouton de la gridy valeur.
Sinon il sera centré.
(la même chose peut être fait en utilisant gridx et weightx valeur si vous n'êtes pas à l'aide de la c.fill = GridBagConstraints.La propriété HORIZONTALE.)
Il y a une solution de contournement. Vous pouvez mettre le GridBagLayout panneau dans un BorderLayout panneau avec BorderLayout.NORD. Ensuite Composant dans le GridBagLayout panneau va commencer à partir de la position supérieure.