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

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

(Last modified: )

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

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

フレームのアイコンに表示される画像を設定する(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());
  }
}
サンプルコード

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

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

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

  Sample(String title){
    setTitle(title);
    setBounds(100, 100, 728, 400);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

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

今回プログラムが設置されているディレクトリと同じディレクトリに、次の icon.png ファイルを置いておきました。

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

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

javac Sample.java

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

java Sample

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

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

このようにフレームに表示されるアイコンに対して任意の画像を設定することができます。

-- --

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

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。