TITLE:JFrameのアイコンを非表示
Posted by terai at 2006-04-17

JFrameのアイコンを非表示

JFrameなどのタイトルバーにあるアイコンを非表示にします。
  • category: swing folder: DisableDefaultIcon title: JFrameのアイコンを非表示 tags: [JFrame, Icon] author: aterai pubdate: 2006-04-17T12:43:57+09:00 description: JFrameなどのタイトルバーにあるアイコンを非表示にします。 image: https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTK49Ua_nI/AAAAAAAAAWs/Ipb_maWCOgY/s800/DisableDefaultIcon.png

概要

JFrameなどのタイトルバーにあるアイコンを非表示にします。

#screenshot

サンプルコード

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

解説

透過色で塗りつぶしたアイコンを使用しています。このため、タイトルバーの左端をクリックするとタイトルメニューは表示することができます。

解説

JFrame#setIconImage(Image)メソッドを使用してタイトルバーなどに表示されるフレームアイコンを変更しています。
  • - 以下のような、透明なImageを使用する方法もあります。
    #spanend
    #spandel
    frame.setIconImage(new BufferedImage(1,1,BufferedImage.TYPE_INT_ARGB));
    #spanend
    #spandel
    
  • null
    • デフォルトのアイコンが表示される
  • new ImageIcon("").getImage();
    • JDK 1.5ではアイコン非表示、JDK 1.6からはデフォルトのアイコンが表示される
    • Web Startで起動した場合AccessControlException: access denied ("java.io.FilePermission" "" "read")が発生
  • new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
    • サイズが1x1で透明なImageを表示
    • タイトルアイコンは非表示でもクリックするとタイトルメニューは開く
    • タスクバーアイコンは黒い矩形になる
  • toolkit.createImage(url_16x16transparent);
    • 透過色で塗りつぶした16x16PNG画像をアイコンとして使用
    • タイトルアイコンは非表示でもクリックするとタイトルメニューは開く
    • タスクバーアイコンは黒い矩形になる
  • - JDK 1.5 では、以下のような方法も使用できましたが、JDK 1.6 からは、デフォルトのアイコンが表示されるようです。
    #spanend
    #spandel
    frame.setIconImage(new ImageIcon("").getImage());
    #spanend
    #spandel
    

参考リンク

参考リンク

コメント