2010-03-04 14 views
130

En mi JPanel, establecí el fondo de JLabel en un color diferente. Puedo ver la palabra "Prueba" y es azul, pero el fondo no cambia en absoluto. ¿Cómo puedo mostrarlo?¿Cómo configuro el color de fondo de una JLabel?

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

Respuesta

264

Uso

label.setOpaque(true); 

lo contrario, el fondo no está pintado, ya que por defecto es de opaquefalse para JLabel.

Desde el JavaDocs:

Si es verdad 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, permitiendo que se muestren los píxeles subyacentes.

Para obtener más información, lea el tutorial de Java How to Use Labels.

+0

+1 label.setOpaque (true); – bizzr3

38

El fondo JLabel es transparente por defecto. Ajuste la opacidad en verdad así:

label.setOpaque(true); 
3

para el fondo, asegúrese de que haya importado java.awt.Color en su paquete.

En el método de main, es decir public static void main(String[] args), llame al método previamente importados:

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: Configuración opaca afectará a su visibilidad. Recuerde la sensibilidad de mayúsculas y minúsculas en Java.

11

Debe establecer setOpaque (verdadero) en verdadero; de lo contrario, el fondo no se pintará en el formulario. Creo que al leer esto, si no está configurado como verdadero, pintará algunos o ninguno de sus píxeles en la forma. El fondo es transparente por defecto, lo que me parece extraño al menos, pero a propósito de la programación, debe configurarlo 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() 
Cuestiones relacionadas