如何获取另一个应用程序的图标?

mat*_*ean 10 java windows

所以在我正在制作的这个应用程序中,用户点击一个按钮,然后该按钮启动一个程序.此按钮将具有应用程序的标题和图标.我只需要知道如何获得图标,有点像这样:Windows http://goo.gl/5WjdT

所以我想知道的是:

  1. 有没有真正的方法在Java中执行此操作
  2. 如果是这样,你会怎么做?

提前致谢!

ale*_*oot 9

您是否必须获取与应用程序的exe文件关联的图标?如果是这样,可以在java中看一下本教程,它解释了从Java应用程序中从可执行二进制文件中提取app图标的几种方法.

看看这段代码:

String s = "c:/windows/regedit.exe";
File file = new File(s);

// Get metadata and create an icon
sun.awt.shell.ShellFolder sf =
        sun.awt.shell.ShellFolder.getShellFolder(file);
Icon icon = new ImageIcon(sf.getIcon(true));
Run Code Online (Sandbox Code Playgroud)

  • 注意:sun.*中的类通常不是已发布的API,并且可能随每个JDK版本而更改. (3认同)

Gui*_*let 7

您可以简单地使用FileSystemView来实现此目的:

public static void main(String[] args) {
    Icon icon = FileSystemView.getFileSystemView()
         .getSystemIcon(new File("C:\\Windows\\regedit.exe"));
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.add(new JLabel(icon));
    frame.pack();
    frame.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)