web-dev-qa-db-ja.com

Java GUIでボタンの背景色を設定するには?

以下は、特定のpannel3にgridlayoutフォームで9つのボタンを作成するコードです。私が欲しいのは、各ボタンの背景を黒にして、その上に灰色のテキストを表示することです。誰でも助けてくれますか?

 for(int i=1;i<=9;i++)
 {
     p3.add(new JButton(""+i));
 }
16
Salar

JButton documentationをご覧ください。 setBackgroundから継承されたsetForegroundおよびJComponentメソッドに特に注意してください。

何かのようなもの:

for(int i=1;i<=9;i++)
{
    JButton btn = new JButton(String.valueOf(i));
    btn.setBackground(Color.BLACK);
    btn.setForeground(Color.GRAY);
    p3.add(btn);
}
22

シンプル:

btn.setBackground(Color.red);

RGB値を使用するには:

btn[i].setBackground(Color.RGBtoHSB(int, int, int, float[]));

12
Ali Mohammadi
for(int i=1;i<=9;i++) {
    p3.add(new JButton(""+i) {{
        // initialize the JButton directly
        setBackground(Color.BLACK);
        setForeground(Color.GRAY);
    }});
}
3
dacwe

コンポーネントがボタンのように見えなくなるため、背景プロパティを変更するだけでは十分ではない場合があります。より良い結果を得るために here のようにPaintメソッドを再実装する必要があるかもしれません:

enter image description here

2
luca

SetOpaqueメソッドを使用して、メソッドにtrueを渡すことで色が表示されるようにする必要がある場合とそうでない場合があります。

2
Tanner

setBackground メソッドを使用して背景を設定し、 setForeground を使用してテキストの色を変更します。ただし、黒い背景の上に灰色のテキストを配置すると、テキストが少し読みにくくなる場合があります。

1
npinti

一部のプラットフォームではsetBackground()メソッドがうまく機能しないようです(Windows 7を使用しています)。 この答え から この質問 が役に立ったと感じました。ただし、問題を解決するために完全に使用したわけではありません。代わりに、ボタンの隣にあるパネルに色を付ける方がはるかに簡単で、ほとんど見た目が美しいと思いました。

0
GregNash