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);
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 .
L'arrière-plan JLabel est transparent par défaut. Définissez l'opacité sur true comme ceci:
label.setOpaque(true);
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()
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.