Wie stelle ich die Hintergrundfarbe eines JLabels ein?

149

In meinem habe JPanelich den Hintergrund von a JLabelauf eine andere Farbe eingestellt. Ich kann das Wort "Test" sehen und es ist blau, aber der Hintergrund ändert sich überhaupt nicht. Wie kann ich es zeigen lassen?

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

Antworten:

311

Verwenden

label.setOpaque(true);

Andernfalls wird der Hintergrund nicht gestrichen, da der Ausfall opaqueheißt falsefür JLabel.

Aus den JavaDocs :

Wenn dies zutrifft, malt die Komponente jedes Pixel innerhalb seiner Grenzen. Andernfalls malt die Komponente möglicherweise nicht einige oder alle ihrer Pixel, sodass die zugrunde liegenden Pixel durchscheinen können.

Weitere Informationen finden Sie im Java-Tutorial zur Verwendung von Beschriftungen .

Peter Lang
quelle
39

Der JLabel-Hintergrund ist standardmäßig transparent. Stellen Sie die Deckkraft folgendermaßen auf true ein:

label.setOpaque(true);
Yannick Loriot
quelle
13

Sie müssen setOpaque (true) auf true setzen, andernfalls wird der Hintergrund nicht in das Formular gezeichnet. Ich denke aus dem Lesen, dass, wenn es nicht auf wahr gesetzt ist, es einige oder keine seiner Pixel in die Form malen wird. Der Hintergrund ist standardmäßig transparent, was mir zumindest seltsam erscheint, aber bei der Programmierung müssen Sie ihn wie unten gezeigt auf true setzen.

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

Aus den 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()

quelle
6

Stellen Sie für den Hintergrund sicher, dass Sie java.awt.Colorin Ihr Paket importiert haben .

Rufen Sie in Ihrer mainMethode public static void main(String[] args)die bereits importierte Methode auf:

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: Das Einstellen von Opak beeinträchtigt die Sichtbarkeit. Denken Sie an die Groß- und Kleinschreibung in Java.

Orji Freitag Oko
quelle