Как установить цвет фона JLabel?
В моем JPanel
я устанавливал фон JLabel
на другой цвет. Я вижу слово «Тест», и оно синее, но фон не меняется вообще. Как я могу его показать?
this.setBackground(Color.white); JLabel label = new JLabel("Test"); label.setForeground(Color.blue); label.setBackground(Color.lightGray); this.add(label);
- Использование гнезда в качающемся апплете
- Java / Swing: низкопрофильная высота кнопки?
- Что делает SwingUtilities.invokeLater?
- расширенное форматирование ввода текста в текстовом поле?
- изменение размера изображения в java
- Закройте один JFrame, не закрывая другого?
- Как установить JFrame в центр, независимо от разрешения монитора?
- Как получить, какой JRadioButton выбран из ButtonGroup
- Как я могу складывать / накладывать jPanels в Java?
- Эффективное цветовое отображение изображения на Java
- Как нарисовать изображение над другим изображением?
- Почему я не должен называть setVisible (true) перед добавлением компонентов?
- Цвет кнопок Java Swing
использование
label.setOpaque(true);
В противном случае фон не будет нарисован, так как по умолчанию opaque
false
для JLabel
.
Из JavaDocs :
Если true, компонент рисует каждый пиксель в пределах своих границ. В противном случае компонент может не нарисовать некоторые или все его пиксели, позволяя отображаемым пикселям.
Для получения дополнительной информации прочитайте учебник Java « Как использовать ярлыки» .
По умолчанию фон JLabel прозрачен. Установите непрозрачность как true:
label.setOpaque(true);
Вы должны установить значение setOpaque (true) в true, иначе фон не будет окрашен в форму. Я думаю, что прочитав это, если он не установлен в 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()
Для фона убедитесь, что вы импортировали 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);
NB: настройка непрозрачности повлияет на ее видимость. Помните чувствительность к регистру в Java.