Comment définir la couleur d'arrière-plan d'un JLabel?

149

Dans mon JPanel, je règle l'arrière-plan d'une JLabelcouleur différente. Je peux voir le mot "Test" et il est bleu, mais le fond ne change pas du tout. Comment puis-je le montrer?

this.setBackground(Color.white);
JLabel label = new JLabel("Test");
label.setForeground(Color.blue);
label.setBackground(Color.lightGray);
this.add(label);
Île Catalina
la source

Réponses:

312

Utilisation

label.setOpaque(true);

Sinon, l'arrière-plan n'est pas peint, car la valeur par défaut opaqueest falsepour JLabel.

Depuis les JavaDocs :

Si vrai, le composant peint chaque pixel dans ses limites. Sinon, le composant risque de ne pas peindre tout ou partie de ses pixels, ce qui laisse apparaître les pixels sous-jacents.

Pour plus d'informations, lisez le didacticiel Java sur l'utilisation des étiquettes .

Peter Lang
la source
39

L'arrière-plan JLabel est transparent par défaut. Réglez l'opacité sur vrai comme ça:

label.setOpaque(true);
Yannick Loriot
la source
13

Vous devez définir setOpaque (true) sur true sinon l'arrière-plan ne sera pas peint sur le formulaire. Je pense à la lecture que s'il n'est pas réglé sur true, il peindra certains ou aucun de ses pixels à la forme. L'arrière-plan est transparent par défaut, ce qui me semble au moins étrange, mais pour la programmation, vous devez le définir sur true comme indiqué ci-dessous.

      JLabel lb = new JLabel("Test");
      lb.setBackground(Color.red);
      lb.setOpaque(true); <--This line of code must be set to true or otherwise the 

Depuis les JavaDocs

setOpaque

public void setOpaque(boolean isOpaque)
  If true the component paints every pixel within its bounds. Otherwise, 
  the component may not paint some or all of its pixels, allowing the underlying 
  pixels to show through.
  The default value of this property is false for JComponent. However, 
  the default value for this property on most standard JComponent subclasses 
   (such as JButton and JTree) is look-and-feel dependent.

Parameters:
isOpaque - true if this component should be opaque
See Also:
isOpaque()

la source
6

Pour l'arrière-plan, assurez-vous que vous avez importé java.awt.Colordans votre package.

Dans votre mainméthode, c'est à dire public static void main(String[] args), appelez la méthode déjà importée:

JLabel name_of_your_label=new JLabel("the title of your label");
name_of_your_label.setBackground(Color.the_color_you_wish);
name_of_your_label.setOpaque(true);

NB: le réglage opaque affectera sa visibilité. N'oubliez pas le respect de la casse en Java.

Orji vendredi Oko
la source