ウィンドウアイコンを設定する
インターナルフレームの左上に表示される小さいアイコンを設定します。これはフレームが最小化した場合にも表示されるアイコンです。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);
サンプルプログラム
では簡単なサンプルを作成して試してみます。
※今回使用させて頂いた画像は『牛飼いとアイコンの部屋』で公開されている画像を使用させて頂いています。
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 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。
