Jak ustawić kolor tła JLabel?


149

W moim JPanelustawiłem tło a JLabelna inny kolor. Widzę słowo „Test” i jest niebieskie, ale tło w ogóle się nie zmienia. Jak mogę to pokazać?

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

Odpowiedzi:


312

Posługiwać się

label.setOpaque(true);

W przeciwnym razie tło nie jest malowany, gdyż zalega z opaqueIs falsedla JLabel.

Z JavaDocs :

Jeśli prawda, komponent maluje każdy piksel w swoich granicach. W przeciwnym razie składnik może nie zamalować niektórych lub wszystkich swoich pikseli, umożliwiając prześwitowanie pikseli znajdujących się pod spodem.

Aby uzyskać więcej informacji, przeczytaj samouczek języka Java, jak używać etykiet .


39

Tło JLabel jest domyślnie przezroczyste. Ustaw krycie na true w ten sposób:

label.setOpaque(true);

13

Musisz ustawić setOpaque (true) na true, w przeciwnym razie tło nie zostanie pomalowane na formularz. Myślę, że czytając, że jeśli nie jest ustawione na true, to zamaluje niektóre lub nie wszystkie ze swoich pikseli w formie. Tło jest domyślnie przezroczyste, co przynajmniej wydaje mi się dziwne, ale w sposobie programowania musisz ustawić je na true, jak pokazano poniżej.

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

Z 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()

6

Jako tło upewnij się, że zaimportowałeś java.awt.Colordo pakietu.

W swojej mainmetodzie, czyli public static void main(String[] args)wywołaj już zaimportowaną metodę:

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

Uwaga: ustawienie nieprzezroczystego wpłynie na jego widoczność. Pamiętaj o rozróżnianiu wielkości liter w Javie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.