Pregunta

En mi JPanel, que establece el fondo de un JLabel a un color diferente. Puedo ver la palabra "prueba" y es azul, pero el fondo no cambia en absoluto. ¿Cómo puedo conseguir que se muestran?

this.setBackground(Color.white);
JLabel label = new JLabel("Test");
label.setForeground(Color.blue);
label.setBackground(Color.lightGray);
this.add(label);
¿Fue útil?

Solución

Uso

label.setOpaque(true);

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

Desde el JavaDocs :

  

Si es verdad el componente pinta cada píxel dentro de sus límites. De lo contrario, el componente no puede pintar algunos o todos sus píxeles, permitiendo que los píxeles subyacentes para mostrar a través.

Para obtener más información, lea el tutorial de Java cómo utilizar etiquetas .

Otros consejos

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

label.setOpaque(true);

Debe establecer el setOpaque (verdadero) a la verdadera de otra forma el fondo no será pintada al formulario. Creo que de la lectura de que si no se establece en true que va a pintar algunos o ninguno de sus píxeles a la forma. El fondo es transparente por defecto que parece extraño para mí, al menos, pero en el modo de programación hay que configurarlo para que cierto 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 

A partir 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()

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

Nota: Ajuste opaca afectará a su visibilidad. Recuerde que la sensibilidad caso en Java.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top