Qu'est-ce que setBounds et comment puis-je l'utiliser?
Je ne trouve rien sur setBounds, ce qu'il est, ou ce que sa fonction ne l'est réellement. Quelqu'un pourrait-clair-moi sur ce point? Merci beaucoup!
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
setBounds(x, y, width, height)
pour spécifier la position et la taille d'un composant d'interface graphique si vous définissez lalayout
ànull
. Puis(x, y)
sont les coordonnées du coin supérieur gauche de la composante.setLocation
etsetSize
.setPreferredSize
fournit des indications sur ce que la taille de la composante "comme" être à la disposition du gestionnaire de l'APIsetSize
alors qu'un composant est sous le contrôle d'un directeur de disposition ne ont temparay effets. Une fois que le conteneur est invalidé, le composant devra être retourné à la taille que le layout manager décide qu'il devrait être.preferredSize
n'est qu'une suggestion pour le gestionnaire de présentation sur la façon dont le composant voudrait être aménagé. Le layout manager est bien dans les droits de l'ignorer,BorderLayout
est un bon exemple de cesetLocation
etsetSize
(remplissage dans les paramètres requis par leurs valeurs actuelles)setBounds
est utilisé pour définir le rectangle de délimitation d'un composant. Cela inclut-il de la position et de la taille.L'est utilisée dans un certain nombre de lieux dans le cadre.
Pour la plupart, vous ne devriez jamais l'appeler. Au lieu de cela, vous devez utiliser des gestionnaires de disposition et de les laisser déterminer la meilleure façon de fournir de l'information à cette méthode.
null
disposition lorsque vous traitez avec un composant de l'INTERFACE utilisateur basée sur 😉C'est une méthode de la
java.awt.Composant
classe. Il est utilisé pour définir la position et la taille d'un composant:x
ety
comme ci-dessus correspondent au coin supérieur gauche dans la plupart (tous?) cas.C'est un raccourci pour
setLocation
etsetSize
.En général, cela ne fonctionne que si la mise en page/layout manager sont inexistantes, c'est à dire nulle.
Il n'y est une réponse par @hexafraction , Il avait précisé les x et y coin en haut à droite qui est faux, ceux qui sont en haut à gauche .
J'ai également fourni la source s'il vous plaît vérifier.
Se déplace et redimensionne cette composante. Le nouvel emplacement du coin supérieur gauche est spécifié par x et y, et la nouvelle taille est spécifiée par la largeur et la hauteur.
Cette méthode modifications relatives à la présentation de l'information, et par conséquent, invalide la hiérarchie des composants.
Paramètres:
source:- setBounds
En fait, un composant Swing n'ont de multiples dimensions, comme:
SetBounds est un raccourci pour le réglage de la taille actuelle plus de l'emplacement du widget si vous n'avez pas utiliser un layout manager.
Si vous utilisez un gestionnaire de présentation, il est de la responsabilité de la mise en page du gestionnaire de disposer de vos composants, en tenant compte de la taille par défaut que vous définissez, et de veiller à ce que les comonent n'est jamais plus petit que son minimumSize ou plus grand que son maximumSize.
Dans ce cas, le layoutManager appellera setSize (ou setBounds), et vous ne pouvez pas vraiment contrôler la position ou de la dimension de la composante.
Le point de l'ensemble de l'aide d'un gestionnaire de présentation est d'avoir une plate-forme et de la fenêtre de la taille d'un chemin indépendant de la pose de vos composantes automatiquement, par conséquent, vous ne vous attendez pas à appeler setSize à partir de votre code.
(Commentaire personnel: Il y a des buggy gestionnaires de disposition, personnellement, je déteste tous et roulé ma propre, qui offre la flexibilité de l'MigLayout sans la courbe d'apprentissage.)
La façon dont Java Swing de l'Isu de travail est que, pour chaque Composite il y a toujours un LayoutManager qui décide de où exactement placez vos composants.
Chaque gestionnaires de disposition fonctionne différemment, donc si vous utilisez par exemple un BorderLayout, setBounds() n'est pas utilisée par le LayoutManager, au lieu de la composante placement est décidé par l'Est,Ouest,Sud,Nord,Centre.
Pour la NullLayoutManager (dans le cas où vous avez utilisé
new JPanel(null)
) cependant, chaque composant doit avoir des coordonnées x et y. Stupide Note: si votre INTERFACE utilisateur serait en trois dimensions, il pourrait aussi être une coordonnée z.Donc, avec
public void Component.setBounds(int x, int y, int width, int height)
vous devez spécifier l'emplacement de votre composant est placé et combien de pixel, il est large et haute.Voici un exemple:
voici un court paragraphe de cet article Comment Faire des Cadres (fenêtre Principale) - Les Tutoriels Java - Oracle qui explique ce que setBounds méthode ne permet en plus de quelques autres méthodes similaires:
les paramètres de setBounds sont (int x, int y, int largeur, int hauteur)
x et y sont de définir la position/emplacement et la largeur et la hauteur de définir la taille/dimension de l'image.