---
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
---
* 概要 [#summary]
`JFrame`などのタイトルバーにあるアイコンを非表示にします。

#download(https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTK49Ua_nI/AAAAAAAAAWs/Ipb_maWCOgY/s800/DisableDefaultIcon.png)

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

* 解説 [#explanation]
`JFrame#setIconImage(Image)`メソッドを使用してタイトルバーなどに表示されるフレームアイコンを変更しています。

- `null`
-- デフォルトのアイコンが表示される
- `new ImageIcon("").getImage();`
-- `JDK 1.5`では、アイコン非表示、`JDK 1.6`からはデフォルトのアイコンが表示される
-- `Web Start`で起動した場合、`AccessControlException: access denied ("java.io.FilePermission" "" "read")`が発生
-- `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`を表示
-- サイズが`1x1`で透明な`Image`を表示
-- タイトルアイコンは非表示でもクリックするとタイトルメニューは開く
-- タスクバーアイコンは黒い矩形になる
- `toolkit.createImage(url_16x16transparent);`
-- 透過色で塗りつぶした`16x16`の`PNG`画像をアイコンとして使用
-- タイトルアイコンは非表示でもクリックするとタイトルメニューは開く
-- タスクバーアイコンは黒い矩形になる

* 参考リンク [#reference]
- [https://community.oracle.com/thread/1381127 Swing - Java Default Icon]
- [[JFrameのIconを変更>Swing/FrameIcon]]
-- タスクバーのアイコンは[https://docs.oracle.com/javase/jp/8/docs/api/java/awt/Window.html#setIconImages-java.util.List- Window#setIconImages(List) (Java Platform SE 8)]で変更する必要がある

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

#comment