我在一个JTable
中列出了一些文件名和它们的图标(类似于Windows资源管理器中的图标)。如果我有一个来自本地文件系统的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年前,我找不到可下载的jar文件。是否还有其他解决方法?