JPanel
で、JLabel
の背景を別の色に設定しました。 「テスト」という単語が表示され、青色になっていますが、背景はまったく変わりません。表示するにはどうすればよいですか?
this.setBackground(Color.white);
JLabel label = new JLabel("Test");
label.setForeground(Color.blue);
label.setBackground(Color.lightGray);
this.add(label);
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);
注意:不透明に設定すると、その可視性に影響します。 Javaの大文字と小文字の区別を覚えておいてください。