web-dev-qa-db-ja.com

JLabelの背景色を設定するにはどうすればよいですか?

JPanelで、JLabelの背景を別の色に設定しました。 「テスト」という単語が表示され、青色になっていますが、背景はまったく変わりません。表示するにはどうすればよいですか?

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

つかいます

label.setOpaque(true);

そうでない場合、opaqueのデフォルトはfalseJLabelであるため、背景はペイントされません。

JavaDocs から:

Trueの場合、コンポーネントは境界内のすべてのピクセルをペイントします。そうしないと、コンポーネントは一部またはすべてのピクセルをペイントできず、下にあるピクセルが透けて見える可能性があります。

詳細については、Javaチュートリアル ラベルの使用方法 を参照してください。

293
Peter Lang

JLabelの背景はデフォルトで透明です。そのように不透明度をtrueに設定します。

label.setOpaque(true);
38
Yannick Loriot

そうでない場合、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()
12
user3376708

背景については、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の大文字と小文字の区別を覚えておいてください。

5
Orji Friday Oko