Question

J'ai un JLabel (en fait, c'est un JXLabel).

J'ai mis une icône et un texte dessus.

<icon><text>

Je vais maintenant ajouter un espacement à gauche du composant, comme ceci:

<space><icon><text>

JE N'ACCEPTE PAS la suggestion de déplacer le JLabel ou d'ajouter un espacement en modifiant l'image.

Je veux juste savoir comment le faire avec du code Java simple.

Était-ce utile?

La solution

J'ai trouvé la solution!

setBorder(new EmptyBorder(0,10,0,0));

Merci à tous!

Autres conseils

Comme ceci: n'est pas très clair, mais vous pouvez ajouter un espacement en ajoutant une bordure transparente d'une certaine largeur à l'étiquette

Si vous essayez de placer l'étiquette sur l'un des côtés de son conteneur, vous pouvez ajouter une colle. Quelque chose comme ça:

JPanel panel = new JPanel();
panel.setLayoutManager(new BoxLayout(panel, BoxLayout.LINE_AXIS);

panel.add(new JLabel("this is your label with it's image and text"));

panel.add(Box.createHorizontalGlue());

Bien que votre question ne soit pas très claire.

Vous n'avez pas besoin de modifier la taille de preferredSize du JLabel, vous pouvez utiliser le GridBagLayout Pour spécifier les séparations entre les composants, vous devez uniquement utiliser GridBagLayout dans le conteneur et y ajouter le JXLabel avec un Objet GridBagConstraints spécifiant les encarts à gauche:

JPanel panel=new JPanel(new GridBagLayout());
JLabel label=new JLabel("xxxxx");

GridBagConstraints constraints=new GridBagConstraints();

constraints.insest.left=X; // X= number of pixels of separation from the left component

panel.add(label,constraints);

Notez que j'ai omis de nombreuses propriétés de configuration dans la configuration des contraintes, vous feriez mieux de lire la documentation de GridBagLayout

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top