フレームのアイコンに任意の画像を設定する

フレームには左上にアイコンが表示されます。このアイコンに表示される画像は任意の画像を設定することができます。ここではフレームのアイコンに画像を設定する方法について解説します。

(2022 年 04 月 11 日公開 / 2022 年 04 月 11 日更新)

フレームのアイコンに表示される画像を設定する

フレームのアイコンとは左上隅に表示される小さな画像のことです。

フレームのアイコンに表示される画像を設定する(1)

アイコンを設定するには JFrame クラスの親クラスである Window クラスで定義されている setIconImage メソッドを使います。

public void setIconImage(Image image)

このウィンドウのアイコンとして表示されるイメージを設定します。
このメソッドは、ウィンドウのアイコンとして1つのイメージを指定するために、setIconImages()の代わりに使用できます。

たとえば次の文を考えてみます。

setIconImage(image);

は、次と同じです。

ArrayList<Image> imageList = new ArrayList<Image>();
imageList.add(image);
setIconImages(imageList);

注: ネイティブのウィンドウ管理システムでは、ウィンドウを表すために、コンテキスト(ウィンドウ装飾、ウィンドウ・リスト、タスク・バーなど)に応じてさまざまな寸法のさまざまなイメージを使用する場合があります。 また、すべてのコンテキストで単一のイメージを使用することも、まったくイメージを使用しないこともあります。

パラメータ:
image - 表示されるアイコン・イメージ。

引数にはアイコンとして表示するイメージを表す Image クラスのオブジェクトを指定します。今回は Image クラスのサブクラスである ImageIcon クラスのオブジェクトを使用します。( ImageIcon クラスについての詳細は「ImageIconクラス」を参照して下さい)。

実際の使い方は次のようになります。

import javax.swing.JFrame;
import javax.swing.ImageIcon;

class Sample extends JFrame{
  public static void main(String args[]){
  }

  Sample(String title){
    ImageIcon icon = new ImageIcon("./icon.png");
    setIconImage(icon.getImage());
  }
}

サンプルプログラム

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 JSample7_1.java という名前で保存します。

import javax.swing.JFrame;
import javax.swing.ImageIcon;

class JSample7_1 extends JFrame{
  public static void main(String args[]){
    JSample7_1 frame = new JSample7_1("MyTitle");
    frame.setVisible(true);
  }

  JSample7_1(String title){
    setTitle(title);
    setBounds(100, 100, 600, 400);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    ImageIcon icon = new ImageIcon("./icon.png");
    setIconImage(icon.getImage());
  }
}

次のようにコンパイルを行います。

javac JSample7_1.java

フレームのアイコンに表示される画像を設定する(2)

コンパイルが終わりましたら実行します。

java JSample7_1

次のようなフレームが表示されます。フレームのアイコンには設定した画像が表示されています。

フレームのタイトルを設定する(2)

今回はプログラムが置かれているフォルダと同じフォルダに「icon.png」という名前の画像ファイルを置いてあります。

-- --

フレームのアイコンに画像を設定する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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