如何设置 JLabel 的背景颜色?

在我的 JPanel中,我将 JLabel的背景设置为不同的颜色。我可以看到“测试”这个词,它是蓝色的,但是背景没有任何变化。我怎样才能让它显示出来?

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

使用

label.setOpaque(true);

否则不绘制背景,因为 opaque的默认值是 false,而 JLabelfalse

来自 JavaDocs:

如果为 true,则组件绘制其边界内的每个像素。否则,组件可能无法绘制部分或全部像素,从而无法显示底层像素。

有关更多信息,请参阅 Java 教程 如何使用标签

默认情况下,JLabel 背景是透明的。 像这样设置不透明度为 true:

label.setOpaque(true);

对于后台,请确保已将 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 中的大小写敏感性吗。

您必须将 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()