FileのSystemIconを取得する
Total: 10682
, Today: 2
, Yesterday: 1
Posted by aterai at
Last-modified:
概要
ファイル、ディレクトリなどの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