146 votes

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

Dans mon JPanel j'ai défini l'arrière-plan d'un JLabel à une couleur différente. Je peux voir le mot "Test" et il est bleu, mais le fond ne change pas du tout. Comment faire pour qu'il s'affiche ?

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

303voto

Peter Lang Points 25877

Utilisez

label.setOpaque(true);

Sinon, l'arrière-plan n'est pas peint, puisque la valeur par défaut de l'option opaque es false para JLabel .

De la JavaDocs :

Si c'est vrai, le composant peint chaque pixel dans ses limites. Sinon, le composant peut ne pas peindre certains ou tous ses pixels, ce qui permet aux pixels sous-jacents de transparaître.

Pour plus d'informations, lisez le tutoriel Java Comment utiliser les étiquettes .

38voto

Yannick L. Points 4662

L'arrière-plan de JLabel est transparent par défaut. Définissez l'opacité à true comme ça :

label.setOpaque(true);

12voto

user3376708 Points 549

Vous devez définir le paramètre setOpaque(true) sur true, sinon l'arrière-plan ne sera pas peint sur le formulaire. D'après ce que j'ai lu, je pense que s'il n'est pas défini sur true, il peindra une partie ou aucun de ses pixels sur le formulaire. L'arrière-plan est transparent par défaut, ce qui me semble étrange, mais dans le cadre de la programmation, il faut le mettre à 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 

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

5voto

Orji Friday Oko Points 31

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

Dans votre main c'est-à-dire public static void main(String[] args) appelle 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 fait de définir l'opacité affectera sa visibilité. N'oubliez pas la sensibilité à la casse en Java.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X