Swing/FrameIcon のバックアップ差分(No.23)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/FrameIcon へ行く。
- 1 (2004-08-30 (月) 05:11:06)
- 2 (2004-08-30 (月) 05:19:16)
- 3 (2004-10-08 (金) 06:22:30)
- 4 (2004-10-12 (火) 07:42:41)
- 5 (2004-11-04 (木) 10:07:22)
- 6 (2005-02-03 (木) 02:04:06)
- 7 (2005-04-20 (水) 03:26:12)
- 8 (2005-04-28 (木) 04:33:06)
- 9 (2005-11-01 (火) 00:26:30)
- 10 (2006-02-27 (月) 15:57:31)
- 11 (2006-06-29 (木) 17:57:16)
- 12 (2006-08-17 (木) 11:11:38)
- 13 (2006-11-10 (金) 20:12:04)
- 14 (2007-08-28 (火) 12:16:13)
- 15 (2011-03-04 (金) 14:54:29)
- 16 (2013-04-11 (木) 22:05:44)
- 17 (2013-12-01 (日) 23:40:12)
- 18 (2014-12-18 (木) 16:51:48)
- 19 (2015-05-20 (水) 21:12:54)
- 20 (2015-05-21 (木) 18:50:13)
- 21 (2017-03-14 (火) 14:29:11)
- 22 (2017-04-04 (火) 14:13:45)
- 23 (2017-04-07 (金) 13:51:51)
- 24 (2017-06-07 (水) 15:35:06)
- 25 (2018-01-16 (火) 19:52:36)
- 26 (2020-01-07 (火) 17:59:41)
- 27 (2021-07-06 (火) 18:52:52)
- 28 (2022-08-20 (土) 22:15:25)
- 追加された行はこの色です。
- 削除された行はこの色です。
--- category: swing folder: FrameIcon title: JFrameのIconを変更 tags: [JFrame, Icon, Image] author: aterai pubdate: 2004-08-30T05:11:06+09:00 description: JFrameのタイトルバー左に表示されているアイコンを別の画像に変更します。 image: https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTNO_p95yI/AAAAAAAAAac/gl0vOOoKH14/s800/FrameIcon.png --- * 概要 [#summary] `JFrame`のタイトルバー左に表示されているアイコンを別の画像に変更します。 #download(https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTNO_p95yI/AAAAAAAAAac/gl0vOOoKH14/s800/FrameIcon.png) * サンプルコード [#sourcecode] #code(link){{ MainPanel panel = new MainPanel(); URL url = panel.getClass().getResource("16x16.png"); JFrame frame = new JFrame(); frame.setIconImage(Toolkit.getDefaultToolkit().createImage(url)); }} * 解説 [#explanation] `JFrame#setIconImage`メソッドで`JFrame`のタイトルバーなどに表示される画像を設定しています。 - サンプル画像として[http://www.gimp.org/ GIMP]を使って作成したサイズ`16x16`の透過`PNG`を使用 - `JDK 1.6.0`から、[http://docs.oracle.com/javase/jp/8/docs/api/javax/swing/JFrame.html#setIconImage-java.awt.Image- JFrame#setIconImage(Image)]は、[https://docs.oracle.com/javase/jp/8/docs/api/java/awt/Window.html#setIconImage-java.awt.Image- Window#setIconImage(Image)]を使用するようになった - `JDK 1.6.0`から、[https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/JFrame.html#setIconImage-java.awt.Image- JFrame#setIconImage(Image)]は、[https://docs.oracle.com/javase/jp/8/docs/api/java/awt/Window.html#setIconImage-java.awt.Image- Window#setIconImage(Image)]を使用するようになった - また、`JDK 1.6.0`から[https://docs.oracle.com/javase/jp/8/docs/api/java/awt/Window.html#setIconImages-java.util.List- Window#setIconImages(List<? extends Image>)]で、複数のイメージを設定可能になった -- 同サイズのイメージがある場合は、先頭から検索して最初のイメージが使用される -- どのサイズのイメージが使用されるかは環境に依存する -- 参考: [http://stackoverflow.com/questions/18224184/sizes-of-frame-icons-used-in-swing java - Sizes of frame icons used in Swing - Stack Overflow] -- `Window#setIconImage(Image)`と、`Window#setIconImages(List<? extends 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")))); }} ---- - `JFrame.setDefaultLookAndFeelDecorated(true);`で、デフォルト`LookAndFeel`のウィンドウ修飾をタイトルバーに適用する場合、`JFrame#setIconImage(...)`で設定したアイコンが透過されない -- [https://bugs.openjdk.java.net/browse/JDK-6429220 #JDK-6429220 Default LAF decorated frame does not support transparent icons - Java Bug System] #code{{ import java.awt.*; import javax.swing.*; public class TransparentIconTest { public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { createAndShowGUI(); } }); } public static void createAndShowGUI() { JFrame.setDefaultLookAndFeelDecorated(true); JFrame f = new JFrame(); f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); ImageIcon icon = new ImageIcon( TransparentIconTest.class.getResource("16x16.png")); f.setIconImage(icon.getImage()); f.setSize(320, 240); f.setLocationRelativeTo(null); f.setVisible(true); } } }} * 参考リンク [#reference] - [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] * コメント [#comment] #comment - %%`JDK 1.6.0`で試すとアイコンの表示が乱れる? -- &user(aterai); &new{2006-06-29 (木) 17:57:16};%% #comment