¿Cómo configuro el color de fondo de un JLabel?

149

En mi JPanel, configuré el fondo de un JLabelcolor diferente. Puedo ver la palabra "Prueba" y es azul, pero el fondo no cambia en absoluto. ¿Cómo puedo hacer que se muestre?

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

Respuestas:

311

Utilizar

label.setOpaque(true);

De lo contrario, el fondo no se pinta, ya que el valor predeterminado de opaquees falsefor JLabel.

De los JavaDocs :

Si es verdadero, el componente pinta cada píxel dentro de sus límites. De lo contrario, el componente puede no pintar algunos o todos sus píxeles, lo que permite que se muestren los píxeles subyacentes.

Para obtener más información, lea el Tutorial de Java Cómo usar etiquetas .

Peter Lang
fuente
39

El fondo JLabel es transparente por defecto. Establezca la opacidad en verdadero de esa manera:

label.setOpaque(true);
Yannick Loriot
fuente
13

Debe establecer setOpaque (verdadero) en verdadero, de lo contrario, el fondo no se pintará en el formulario. Creo que al leer eso, si no se establece en verdadero, pintará algunos o no alguno de sus píxeles en el formulario. El fondo es transparente de forma predeterminada, lo que me parece extraño al menos, pero en la forma de programación, debe establecerlo en verdadero como se muestra a continuación.

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

De los 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()

fuente
6

Para el fondo, asegúrese de haber importado java.awt.Colora su paquete.

En su mainmétodo, es decir public static void main(String[] args), llame al método ya importado:

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);

Nota: la configuración opaca afectará su visibilidad. Recuerde la sensibilidad a mayúsculas y minúsculas en Java.

Orji Friday Oko
fuente