bob*_*rew 28 java desktop icons swing file
我列出了一些带有图标的文件名(如Windows资源管理器中的那些)JTable.如果我有File来自本地文件系统的对象,我知道获取图标的两种方法:
javax.swing.filechooser.FileSystemView.getFileSystemView().getSystemIcon( file )
Run Code Online (Sandbox Code Playgroud)
对于16x16图标或更大的图标:
sun.awt.shell.ShellFolder.getShellFolder( file ).getIcon( true ) )
Run Code Online (Sandbox Code Playgroud)
由于我的文件存储在数据库中,因此我没有该File对象.我的解决方法是创建具有特定文件扩展名的临时文件,使用上述两种方法之一并缓存图标以在CellRenderer中显示它.
我搜索了没有临时文件的解决方案,发现了两个我不喜欢的解决方案:
org.eclipse.swt.program.Program.findProgram(String extension).getImageData(),但我不想使用SWTorg.jdesktop.jdic.icons.IconService来自JDIC项目的孵化器.最近的变化是IconService在6年前,在JDIC 2年前,我找不到一个可下载的jar.还有其他解决方案吗?
看起来您已经找到了执行此操作的方法,除非您想深入研究本机库等。
FileSystemView内部使用Win32ShellFolder,因此它们基本相同。
我还挖掘了org.eclipse.swt.program.Program及其org.eclipse.swt.internal.win32.OS的源代码。然后,操作系统类使用图标的本机调用。此时,除非您真的无法创建临时文件,否则我不会走这条路。
对于JDIC,我只找到了http://kickjava.com/src/org/jdesktop/jdic/tray/internal/impl/WinTrayIconService.java.htm,进行了一些挖掘(可能不相关,但做了一些标志性的事情:D) 。亦称本机。
| 归档时间: |
|
| 查看次数: |
6733 次 |
| 最近记录: |