概要

JFrameのタイトルバー左に表示されているアイコンを別の画像に変更します。

サンプルコード

MainPanel panel = new MainPanel();
URL url = panel.getClass().getResource("16x16.png");
JFrame frame = new JFrame();
frame.setIconImage(Toolkit.getDefaultToolkit().createImage(url));
view all

解説

JFrame#setIconImageメソッドでJFrameのタイトルバーなどに表示される画像を設定しています。

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"))));

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);
  }
}

参考リンク

コメント

  • JDK 1.6.0で試すとアイコンの表示が乱れる? -- aterai