Swing/FileChooserIconImage のバックアップ(No.3)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/FileChooserIconImage へ行く。
- 1 (2018-08-06 (月) 17:25:22)
- 2 (2018-08-14 (火) 16:22:07)
- 3 (2020-08-12 (水) 11:29:46)
- 4 (2022-01-02 (日) 17:39:55)
- 5 (2022-08-20 (土) 22:15:25)
- 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
とは別のアイコンに変更します。
Screenshot
Advertisement
サンプルコード
JButton button2 = new JButton("makeImage(16, Color.WHITE)");
button2.addActionListener(e -> {
JFileChooser fileChooser = new JFileChooser() {
@Override protected JDialog createDialog(Component p) throws HeadlessException {
JDialog dialog = super.createDialog(p);
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)
でウィンドウアイコンを設定した場合、適当な大きさにリサイズされる- 「適当な大きさ」は環境や表示スケールなどによって変化する?
- 例:
Windows 10
で表示スケール100%
の場合のウィンドウアイコン:16x16
- 例:
Windows 10
で表示スケール125%
の場合のウィンドウアイコン:20x20
- 例:
- 直接
JFrame.setDefaultLookAndFeelDecorated(true);
で、デフォルトLookAndFeel
のウィンドウ修飾をタイトルバーに適用する場合、表示スケールに関係なくウィンドウアイコン16x16
が適用される?
参考リンク
- java - Sizes of frame icons used in Swing - Stack Overflow
- JFrameのIconを変更
- JDK-6429220 Default LAF decorated frame does not support transparent icons - Java Bug System