Comment puis-je désactiver un Composite de sorte qu'il ne peut pas changer de taille en Java
J'ai plusieurs JPanels dans une mise en page et à chaque fois que je modifie la taille de la JFrame manuellement avec ma souris, elle s'étend de la JPanels et lui donne une apparence de désordre. Est-il un moyen de désactiver cette option?
Avez-vous regarder ce stackoverflow.com/questions/869245/... ?
OriginalL'auteur R Doolabh | 2012-04-14
Vous devez vous connecter pour publier un commentaire.
Composite n'est pas redimensionnable par l'utilisateur.
Si vous faites référence à JFrame, vous pouvez utiliser
OriginalL'auteur Shehzad
Il est tout au sujet de la LayoutManager vous utilisez. Certains LayoutManagers comme BorderLayout toujours donner un espace supplémentaire pour les enfants ajoutée dans la position centrale. Cependant, le nord, le sud, l'est et l'ouest ne sont attribuées à la taille préférée. Mon préféré LayoutManager est TableLayout qui est extrêmement facile à utiliser et très puissant. Vous pouvez choisir la manière dont l'espace supplémentaire est attribué à chaque enfant. Il a vraiment tout dépend de ce que vous êtes en utilisant.
Vous pouvez également setMaximumSize sur la JFrame et il ne vous permettra pas de redimensionner la JFrame.
OriginalL'auteur chubbsondubs
Je voudrais élargir les réponses données par @Shehzad et @chubbsondubs.
Tout d'abord, comme Shehzad a déclaré, "redimensionnable" n'est pas un attribut de
JPanel
objets. Il est, cependant, un attribut de la fenêtre ou le cadre qui contient le groupe de travail (et d'autres composants). La question est maintenant de savoir comment empêcher un panneau de redimensionnement lors de son conteneur est redimensionné. Comme chubbsondubs dit, il est tout au sujet de la Mise en page Manager vous êtes en utilisant. Considérons l'extrait de code suivant:Ces lignes ont été extraites à partir du constructeur de l'image. Le
sidebar
objet est un panneau à l'aide deGridBagLayout
à la place des champs de texte, des étiquettes, et d'autres composants. Même si j'ai mis lepreferredSize
,minimumSize
, etmaximumSize
attributs du panneau pour les mêmes dimensions, quand j'ai redimensionner la boîte de dialogue, le conteneur n'a pas de "respect", le minimum, le maximum et la taille préférée des attributs définis dans lesidebar
objet (Recherche de Gestionnaires de Disposition à savoir pourquoi il en est). Parce que mon dialogue (image) ne respecte pas ces contraintes de taille, je dois isoler lesidebar
de l'image parent. Pour ce faire, il suffit d'ajouter lesidebar
à un autre panneau, puis ajouter à ce nouveau panneau de la boîte de dialogue. En d'autres termes, la "barre latérale" est ajouté indirectement à la boîte de dialogue par l'ajout de son parent immédiat à la place.Maintenant, dans ce cas, le
dummyPane
"respecte" les contraintes de taille définie dans lesidebar
objet, tout être redimensionnée par l'image parent.Mise à JOUR:
Une dernière chose... Si vous utilisez Positionnement Absolu, vous devez définir la
size
attribut et nonpreferredSize
,minimumSize
, oumaximumSize
. Celles-ci sont ignorées lorsque le positionnement absolu est utilisé. Le positionnement absolu est lorsque les gestionnaires de disposition est définie ànull
et la x, y les coordonnées de la composante sont définies explicitement. Lesize
du composant peut être définie à l'aide de lasetSize(int width, int height)
ou lasetBounds(int x, int y, int width, int height)
méthodes.OriginalL'auteur hfontanez