フレームの背景色を設定する
フレームの背景には任意の色を設定することができます。ここではフレームの背景色を設定する方法について解説します。
(2022 年 04 月 11 日公開 / 2022 年 04 月 11 日更新)
目次
背景色を設定する
フレームで背景色を設定するには ContentPane を取得し、ペインに対して設定を行います。設定を行うには Container クラスの親クラスである JComponent クラスで用意されている setBackground メソッドを使います。
public void setBackground(Color bg)
このコンポーネントのバックグラウンド・カラーを設定します。 バックグラウンド・カラーは、コンポーネントが不透明である場合にのみ、JComponentまたはComponentUIの実装のサブクラスによってのみ使用されます。 JComponentの直接のサブクラスは、このプロパティを受け付けるためにpaintComponentをオーバーライドする必要があります。
このプロパティが受け付けられるかどうかはルック・アンド・フィールしだいであり、無視されることもあります。
オーバーライド:
setBackground 、クラス: Component
パラメータ:
bg - 要求するバックグラウンドColor
引数には色を表す Color クラスのオブジェクトを指定して下さい。( Color クラスの使い方は「Colorクラス」を参照して下さい)。
実際の使い方は次のようになります。
import javax.swing.JFrame; import java.awt.FlowLayout; class Sample extends JFrame{ public static void main(String args[]){ } Sample(String title){ Container contentPane = getContentPane(); contentPane.setBackground(Color.GREEN); } }
なお ContentPane には背景を透明にする設定は行えません。
サンプルプログラム
それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 JSample9_1.java という名前で保存します。
import javax.swing.JFrame; import javax.swing.JButton; import java.awt.Container; import java.awt.Color; import java.awt.BorderLayout; class JSample9_1 extends JFrame{ public static void main(String args[]){ JSample9_1 frame = new JSample9_1("MyTitle"); frame.setVisible(true); } JSample9_1(String title){ setTitle(title); setBounds(100, 100, 600, 400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JButton btn = new JButton("Open"); Container contentPane = getContentPane(); contentPane.setBackground(Color.ORANGE); contentPane.add(btn, BorderLayout.NORTH); } }
次のようにコンパイルを行います。
javac JSample9_1.java
コンパイルが終わりましたら実行します。
java JSample9_1
フレームの ContentPane を取得したあと背景色をオレンジに設定しています。
-- --
フレームの背景色を設定する方法について解説しました。
( Written by Tatsuo Ikura )

著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。