Я перечисляю некоторые имена файлов с их значками (например, в Проводнике Windows) в JTable
. Я знаю два способа получить значок, если у меня есть объект File
из локальной файловой системы:
javax.swing.filechooser.FileSystemView.getFileSystemView().getSystemIcon( file )
для значка 16x16 или большего размера:
sun.awt.shell.ShellFolder.getShellFolder( file ).getIcon( true ) )
Поскольку мои файлы хранятся в базе данных, у меня нет объекта File
. Мой обходной путь - создать временный файл с определенным расширением имени файла, использовать один из двух методов выше и кэшировать значок, чтобы отобразить его в CellRenderer.
Я искал решение без временных файлов и нашел два, которые мне тоже не нравятся:
org.eclipse.swt.program.Program.findProgram(String extension).getImageData()
, но я не хочу использовать SWT
org.jdesktop.jdic.icons.IconService
из инкубатора проекта JDIC . Последние изменения в IconService
произошли 6 лет назад, в JDIC 2 года назад, и я не могу найти загружаемую банку.
Есть ли другое решение?