0

我知道这可能看起来有点奇怪,但我有这个要求,我想知道这是否可能。

我有一个 java swing 应用程序,我选择了一个文件(程序),这个程序被添加到一个列表中。列表完成后,我执行程序列表(这就像一个启动管理器)。

我想做的是以某种方式获取我选择的文件并将其作为图像显示到我的 UI。对于 pdf、doc、txt 等常见文件,这很容易,我只为每种类型准备了一个通用图像。但是假设我想执行 regedit.exe 或 msconfig.exe,我希望能够抓住它的图标(下图)。

在此处输入图像描述

有谁知道如何做到这一点?

谢谢

4

2 回答 2

5

看看FileSystemView.getSystemIcon(File)

它有点有限(因为你只会得到一种尺寸),但它是内置的,甚至不需要任何额外的库或 JNA 或 JNI...

File f = new File(...);
Icon icon = FileSystemView.getFileSystemView().getSystemIcon(f);
于 2012-09-26T05:58:10.823 回答
0

如果你想要原生图标,你需要 JNI。Java 没有用于获取不同大小的本机图标的默认 API。以下是 Windows 和 linux 的一些起点:

如果您不需要确切的本机图标,您可以获取文件的 mimetype 并自行设置图标:

于 2012-09-26T08:38:55.400 回答