Как установить цвет фона JLabel?
в своем JPanel, Я установил фон JLabel к другому цвету. Я вижу слово "тест", и оно синее, но фон совсем не меняется. Как я могу заставить его показать?
this.setBackground(Color.white);
JLabel label = new JLabel("Test");
label.setForeground(Color.blue);
label.setBackground(Color.lightGray);
this.add(label);
4 ответов:
использовать
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.
Comments