• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JFrameのアイコンを非表示
#navi(../)
RIGHT:Posted by [[terai]] at 2006-04-17
RIGHT:Posted by &author(aterai); at 2006-04-17
*JFrameのアイコンを非表示 [#fd5a755d]
JFrameなどのタイトルバーにあるアイコンを非表示にします。

-&jnlp;
-&jar;
-&zip;

#screenshot
//#screenshot
#ref(http://lh6.ggpht.com/_9Z4BYR88imo/TQTK49Ua_nI/AAAAAAAAAWs/Ipb_maWCOgY/s800/DisableDefaultIcon.png)

**サンプルコード [#s7596510]
#code{{
JFrame    frame = new JFrame("test");
#code(link){{
JFrame frame = new JFrame("test");
MainPanel panel = new MainPanel();
URL url = panel.getClass().getResource("16x16transparent.png");
frame.setIconImage(Toolkit.getDefaultToolkit().createImage(url));
}}

**解説 [#p9be32d7]
透過色で塗りつぶしたアイコンを使用しています。このため、タイトルバーの左端をクリックするとタイトルメニューは表示することができます。
JFrame#setIconImage(Image)メソッドを使用して、タイトルバーなどにあるフレームのアイコンを変更しています。

----
以下のような、透明なImageを使用する方法もあります。
#code{{
frame.setIconImage(new BufferedImage(1,1,BufferedImage.TYPE_INT_ARGB));
}}
-null
--デフォルトのアイコンが表示されます。

----
JDK 1.5 では、以下のような方法も使用できましたが、JDK 1.6 からは、デフォルトのアイコンが表示されるようです。
#code{{
frame.setIconImage(new ImageIcon("").getImage());
}}
-new ImageIcon("").getImage();
--JDK 1.5 では、アイコン非表示、JDK 1.6 からは、デフォルトのアイコンが表示されるようです。

-new BufferedImage(1,1,BufferedImage.TYPE_INT_ARGB);
--サイズが1x1で、透明なImageを表示しています。
--タイトルバーの左端をクリックするとタイトルメニューは表示することができます。

-new BufferedImage(1,1,BufferedImage.TYPE_INT_ARGB);
--透過色で塗りつぶしたPNG画像をアイコンとして使用しています。
--タイトルバーの左端をクリックするとタイトルメニューは表示することができます。

**参考リンク [#b14cc1e2]
-[[Swing - Java Default Icon>http://forums.sun.com/thread.jspa?threadID=725573]]
-[http://forums.sun.com/thread.jspa?threadID=725573 Swing - Java Default Icon]

**コメント [#hdfa73f8]
- thank u -- [[mid]] &new{2006-06-15 (木) 17:15:20};
-- np  -- [[aterai]] &new{2009-02-05 (木) 18:10:07};
- スクリーンショットなどを更新 -- [[aterai]] &new{2009-02-05 (木) 18:15:32};

#comment