Як встановити колір фону JLabel?


149

В моєму випадку JPanelя встановив фон JLabelдля іншого кольору. Я бачу слово "Тест" і воно синє, але фон зовсім не змінюється. Як я можу його показати?

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

Відповіді:


312

Використовуйте

label.setOpaque(true);

Інакше фон не пофарбований, оскільки типовим opaqueє значення falseдля JLabel.

З JavaDocs :

Якщо вірно, компонент малює кожен піксель у межах його меж. В іншому випадку компонент може не малювати деякі або всі його пікселі, дозволяючи базуватися на пікселях.

Для отримання додаткової інформації читайте навчальний посібник Java Як користуватися мітками .


39

Фон JLabel за замовчуванням прозорий. Встановіть непрозорість у вірно так:

label.setOpaque(true);

13

Ви повинні встановити setOpaque (true) на справжнє інше, якщо фон не буде пофарбований у форму. Я думаю, читаючи, що якщо це не встановлено на істину, він буде малювати певну частину пікселів чи ні. Фон за замовчуванням прозорий, що мені здається дивним, принаймні, але в способі програмування ви повинні встановити його як true, як показано нижче.

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

З 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

Для фону переконайтесь, що ви імпортували java.awt.Colorу свій пакет.

У своєму mainметоді, тобто public static void main(String[] args)викличте вже імпортований метод:

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

Примітка: Налаштування непрозорості вплине на його видимість. Запам’ятайте чутливість регістру на Java.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.