• category: swing folder: FileChooserIconImage title: JFileChooserのタイトルバーのIconImageを変更する tags: [JFileChooser, JDialog] author: aterai pubdate: 2018-08-06T17:20:50+09:00 description: JFileChooserのタイトルバーアイコンを親のJFrameとは別のアイコンに変更します。 image: https://drive.google.com/uc?id=1eUMSRA3bh0DZYC2DrIVsGRXTqW_ZsGmHCA

概要

JFileChooserのタイトルバーアイコンを親のJFrameとは別のアイコンに変更します。

サンプルコード

JButton button2 = new JButton("makeImage(16, Color.WHITE)");
button2.addActionListener(e -> {
  JFileChooser fileChooser = new JFileChooser() {
    @Override protected JDialog createDialog(Component parent) throws HeadlessException {
      JDialog dialog = super.createDialog(parent);
      dialog.setIconImage(makeImage(16, Color.WHITE));
      return dialog;
    }
  };
  fileChooser.showOpenDialog(getRootPane());
});
View in GitHub: Java, Kotlin

解説

上記のサンプルでは、JFileChooserのタイトルバーに表示されるウィンドウのアイコンを親のJFrameとは別のアイコンに変更しています。

  • default icon
    • デフォルトのJFileChooserのウィンドウアイコンは、親のJFrameのウィンドウアイコンが適用される
  • makeImage(16, Color.WHITE)
    • 直接JFileChooserのウィンドウのアイコンを変更するメソッドはデフォルトでは存在しないので、JFileChooser#createDialog(...)メソッドをオーバーライドし、JFileChooserが使用するJDialogに別アイコンを設定
    • Window#setIconImage(Image)でウィンドウアイコンを設定した場合、適当な大きさにリサイズされる
    • 「適当な大きさ」は環境や表示スケールなどによって変化する?

参考リンク

コメント