Pourquoi setLocation () ne déplace-t-il pas mon étiquette?
J'ai le code suivant lorsque j'essaie de mettre un JLabel
dans un emplacement personnalisé sur un JFrame
.
public class GUI extends JFrame
{
/**
*
* @param args
*/
public static void main(String args[])
{
new GUI();
}
/**
*
*/
public GUI()
{
JLabel addLbl = new JLabel("Add: ");
add(addLbl);
addLbl.setLocation(200, 300);
this.setSize(400, 400);
//pack();
setVisible(true);
}
}
Il ne semble pas aller là où je le veux.
source d'informationauteur rob
Vous devez vous connecter pour publier un commentaire.
Le problème est que le
LayoutManager
du panneau est la définition de l'emplacement de l'étiquette pour vous.Ce que vous devez faire est de définir la mise en page à null:
Cela fera en sorte que le cadre ne pas essayer à la disposition de l'composants par lui-même.
Alors appel
setBounds(Rectangle)
sur l'étiquette. Comme:Ce qui devrait placer le composant où vous le souhaitez.
Cependantsi vous n'avez pas vraiment une bonne raison pour disposer les composants par vous-même, il est généralement préférable d'utiliser
LayoutManagers
de travailler en votre faveur.Ici est un bon tutoriel pour débuter avec l'aide de
LayoutManager
s.Si vous devez aller sans un
LayoutManager
ici est un bon guide pour aller sans un.Vous mettez le code d'emplacement sous le cadre et que cela fonctionne, mais si vous voulez que cela fonctionne pour vous
mettre le code d'emplacement dans une course tout en boucle. C'est ce que j'ai fait pour le comprendre, et cela fonctionne.