web-dev-qa-db-fra.com

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

Dans mon JPanel, je règle l'arrière-plan d'un JLabel sur une couleur différente. Je peux voir le mot "Test" et il est bleu, mais l'arrière-plan ne change pas du tout. Comment puis-je le faire apparaître?

this.setBackground(Color.white);
JLabel label = new JLabel("Test");
label.setForeground(Color.blue);
label.setBackground(Color.lightGray);
this.add(label);
140
Catalina Island

Utilisation

label.setOpaque(true);

Sinon, l’arrière-plan n’est pas peint, car la valeur par défaut de opaque est false pour JLabel.

De la JavaDocs :

Si true, le composant peint chaque pixel dans ses limites. Sinon, le composant risque de ne pas peindre tout ou partie de ses pixels, ce qui permettra aux pixels sous-jacents de transparaître.

Pour plus d'informations, lisez le Java Tutorial tilisation des étiquettes .

294
Peter Lang

L'arrière-plan JLabel est transparent par défaut. Définissez l'opacité sur true comme ceci:

label.setOpaque(true);
38
Yannick Loriot

Vous devez définir la valeur true de setOpaque (true), sinon l'arrière-plan ne sera pas peint pour le formulaire. Je pense qu’en lisant cela, si elle n’est pas définie sur true, elle peindra certains de ses pixels ou non à la forme. L'arrière-plan est transparent par défaut, ce qui me semble au moins étrange, mais 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 

À partir des 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()
12
user3376708

Pour l'arrière-plan, assurez-vous que vous avez importé Java.awt.Color dans votre package.

Dans votre méthode main, 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é. Rappelez-vous la sensibilité à la casse en Java.

5
Orji Friday Oko