ウィンドウアイコンを設定する
インターナルフレームの左上に表示される小さいアイコンを設定します。これはフレームが最小化した場合にも表示されるアイコンです。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 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。