• 追加された行はこの色です。
  • 削除された行はこの色です。
---
title: JFrameのIconを変更
tags: [JFrame, Icon, Image]
author: aterai
pubdate: 2004-08-30T05:11:06+09:00
description: JFrameのタイトルバー左に表示されているアイコンを別の画像に変更します。
---
* 概要 [#ld8b9d90]
`JFrame`のタイトルバー左に表示されているアイコンを別の画像に変更します。

#download(https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTNO_p95yI/AAAAAAAAAac/gl0vOOoKH14/s800/FrameIcon.png)

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

* 解説 [#y6aff739]
`JFrame#setIconImage`メソッドでアイコンを設定しています。
`JFrame#setIconImage`メソッドで`JFrame`のタイトルバーなどに表示される画像を設定しています。

サンプルでは[http://www.gimp.org/ GIMP]を使って作成した`16x16`の透過`PNG`をアイコンとして使用しています。
- サンプル画像として[http://www.gimp.org/ GIMP]を使って作成したサイズ`16x16`の透過`PNG`を使用
- `JDK 1.6.0`から、[http://docs.oracle.com/javase/jp/6/api/java/awt/Window.html#setIconImage(java.awt.Image) Window#setIconImage(Image) (Java Platform SE 6)]が使用されるようになった
- また、`JDK 1.6.0`から[http://docs.oracle.com/javase/jp/6/api/java/awt/Window.html#setIconImages(java.util.List) Window#setIconImages(java.util.List) (Java Platform SE 6)]で、複数のイメージを設定可能になった
-- 同サイズのイメージがある場合は、先頭から検索して最初のイメージが使用される
-- どのサイズのイメージが使用されるかは環境に依存する
-- 参考: [http://stackoverflow.com/questions/18224184/sizes-of-frame-icons-used-in-swing java - Sizes of frame icons used in Swing - Stack Overflow]
-- `setIconImage(Image)`と、`setIconImages(List<Image>)`を両方使用した場合、後に実行したメソッドが有効になる
--- 以下の例の場合、タイトルバーのアイコンは、`ATTACHMENT_16x16-32.png`になる

#code{{
Toolkit tk = Toolkit.getDefaultToolkit();
frame.setIconImage(tk.createImage(MainPanel.class.getResource("RECYCLE BIN - EMPTY_16x16-32.png")));
frame.setIconImages(java.util.Arrays.asList(
    tk.createImage(MainPanel.class.getResource("ATTACHMENT_16x16-32.png")),
    tk.createImage(MainPanel.class.getResource("wi0054-32.png"))));
}}

* 参考リンク [#d3455ff6]
- [http://stackoverflow.com/questions/18224184/sizes-of-frame-icons-used-in-swing java - Sizes of frame icons used in Swing - Stack Overflow]
- [http://www.gimp.org/ GIMP]

* コメント [#x176a30a]
#comment
- %%`JDK 1.6.0`で試すとアイコンの表示が乱れる? -- &user(aterai); &new{2006-06-29 (木) 17:57:16};%%

#comment