Swing/SystemIcon のバックアップの現在との差分(No.8)
- category: swing folder: SystemIcon title: FileのSystemIconを取得する tags: [SystemIcon, FileSystemView, ShellFolder] author: aterai pubdate: 2008-06-30T17:25:49+09:00 description: ファイル、ディレクトリなどのSystemIconを取得します。 image:
概要
ファイル、ディレクトリなどのSystemIcon
を取得します。
Screenshot
Advertisement
サンプルコード
// 16x16
smallLabel.setIcon(FileSystemView.getFileSystemView().getSystemIcon(file));
// 32x32
largeLabel.setIcon(new ImageIcon(ShellFolder.getShellFolder(file).getIcon(true)));
View in GitHub: Java, Kotlin解説
上記のサンプルでは、Windows
環境などからファイルをドロップするとそのファイルのSystemIcon
を表示できます。
上記のサンプルでは、Windows
環境などからファイルをパネルにドロップするとそのファイルのSystemIcon
を表示できます。
16x16
-
FileSystemView#getSystemIcon(File)
メソッドで小さいアイコンを取得 -
FileSystemView#getSystemIcon(File)
メソッドで小さいアイコンを取得可能
-
32x32
-
ShellFolder.getShellFolder(file).getIcon(true)
で大きいアイコンを取得 -
ShellFolder.getShellFolder(file).getIcon(true)
で大きいアイコンを取得可能 - コンパイル時に「
ShellFolder
は内部所有のAPI
であり、今後のリリースで削除される可能性があります」と警告される -
Java 9
ではsun
パッケージの内部所有クラスは非公開になって使用できない -
Java 17
で復活しそう?
-
参考リンク
- FileSystemView#getSystemIcon(File) (Java Platform SE 8)
- Code Beach: Get the File Type Icon with Java
- 8182043: Access to Windows Large Icons by azuev-java · Pull Request #2875 · openjdk/jdk · GitHub