Swing/SystemIcon のバックアップの現在との差分(No.9)
- 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
を表示できます。
16x16
FileSystemView#getSystemIcon(File)
メソッドで小さいアイコンを取得可能
32x32
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