Domanda

Ho un JLabel (in realtà, è un JXLabel).

Ho messo un'icona e un testo su di esso.

<icon><text>

Ora bacchetta per aggiungere un po 'di spazio sul lato sinistro del componente, in questo modo:

<space><icon><text>

NON ACCETTO il suggerimento di spostare JLabel o aggiungere spazio modificando l'immagine.

Voglio solo sapere come farlo con un semplice codice Java.

È stato utile?

Soluzione

Ho trovato la soluzione!

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

Grazie a tutti!

Altri suggerimenti

Come questo: non è molto chiaro, ma puoi aggiungere una spaziatura aggiungendo un bordo trasparente di una certa larghezza all'etichetta

Se stai cercando di spingere l'etichetta su un lato del contenitore, puoi aggiungere una colla. Qualcosa del genere:

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());

Anche se la tua domanda non è molto chiara.

Non è necessario modificare la dimensione preferita di JLabel, è possibile utilizzare GridBagLayout Manager per specificare le separazioni tra i componenti, devi solo usare GridBagLayout nel contenitore e aggiungere il JXLabel con un GridBagConstraints che specifica gli inserti a sinistra:

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);

Si noti che ho omesso molte proprietà di configurazione nella configurazione dei vincoli, è meglio leggere la documentazione di GridBagLayout

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top