ウィンドウアイコンを設定する

広告

インターナルフレームの左上に表示される小さいアイコンを設定します。これはフレームが最小化した場合にも表示されるアイコンです。JInternalFrameクラスで用意されている「setFrameIcon」メソッドを使います。

public void setFrameIcon(Icon icon)

この内部フレームのタイトルバー (通常は左上隅) に表示するイメージを設定し
ます。このイメージは desktopIcon オブジェクトとは異なります。desktopIcon
オブジェクトは、この内部フレームがアイコン化されたときに JDesktop に表示
されるイメージです。 この関数には null を渡すことができますが、場面に応
じて Look & Feel は、アイコンを表示しない、Look & Feel のデフォルトアイ
コンを表示するなど、適切な動作を選択できます。

パラメータ:
  icon - タイトルバーに表示する Icon

引数には表示したい画像を表すIconインターフェースを実装したクラスのオブジェクトを指定します。JavaではIconインターフェースを実装したクラスとしてImageIconクラスが用意されていますので通常はImageIconクラスのオブジェクトを指定して下さい。(ImageIconクラスについては『ImageIconクラス』を参照して下さい)。

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

JInternalFrame iframe = new JInternalFrame();

ImageIcon icon = new ImageIcon("./img/sample.png");
iframe.setFrameIcon(icon);

サンプルプログラム

では簡単なサンプルを作成して試してみます。

※今回使用させて頂いた画像は『牛飼いとアイコンの部屋』で公開されている画像を使用させて頂いています。

JDesktopPaneTest13.java

import javax.swing.*;
import java.awt.BorderLayout;

public class JDesktopPaneTest13 extends JFrame{

  public static void main(String[] args){
    JDesktopPaneTest13 frame = new JDesktopPaneTest13();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 400, 300);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }

  JDesktopPaneTest13(){
    JDesktopPane desktop = new JDesktopPane();

    ImageIcon icon = new ImageIcon("./img/reo1s.gif");

    JInternalFrame iframe1 = new JInternalFrame("IFrame1");
    iframe1.setSize(250, 150);
    iframe1.setLocation(10, 10);
    iframe1.setVisible(true);
    iframe1.setFrameIcon(icon);

    JInternalFrame iframe2 = new JInternalFrame("IFrame2");
    iframe2.setSize(250, 150);
    iframe2.setLocation(100, 100);
    iframe2.setVisible(true);

    desktop.add(iframe1);
    desktop.add(iframe2);

    getContentPane().add(desktop, BorderLayout.CENTER);
  }
}

上記をコンパイルした後で実行すると次のように表示されます。

インターナルフレームにウィンドウアイコンを設置する

2番目のフレームはデフォルトの状態です。大きめのアイコンを指定してもフレームバーのサイズが大きくなるということはないようです。

インターナルフレームにウィンドウアイコンを設置する

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

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