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


149

私にはJPanel、私がの背景を設定するJLabel別の色に。「テスト」という言葉が見えて青色ですが、背景はまったく変わりません。どうすれば表示できますか?

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

回答:


311

使用する

label.setOpaque(true);

それ以外の場合、デフォルトのopaqueはであるfalseため、背景はペイントされませんJLabel

JavaDocsから:

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

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



13

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

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では大文字と小文字が区別されることに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.