Swinghacks——获取系统图标

来源:互联网 发布:利雅得机场数据 编辑:程序博客网 时间:2024/06/05 14:15

首先,java是不支持ico图标的

例如,我的D盘有一个a.pdf文件,操作系统默认显示了图标,如图


当然,这个a.pdf是我新建的a.txt然后改后缀得到的

现在我想在java中也获取到这个pdf的图标,效果如下:


这样的话,我们没有必要准备一系列的图标了,需要哪个文件类型的系统图标,临时建一个空文件,获取图标即可

当然,也可以把获取到的图标保存成java能识别的文件类型

上代码:

import javax.swing.*;import java.io.*;public class LargeIconTest {    public static void main(String[] args) throws Exception {        // Create a File instance of an existing file        File file = new File("D:/a.pdf");                // Get large icon        sun.awt.shell.ShellFolder sf = sun.awt.shell.ShellFolder.getShellFolder(file);        Icon icon = new ImageIcon(sf.getIcon(true));        System.out.println("type = " + sf.getFolderType());                // show the icon        JLabel label = new JLabel(icon);        JFrame frame = new JFrame();        frame.getContentPane().add(label);        frame.pack();        frame.show();        }}

当然,还有一种简单方法,不过获取到的是小图标

    FileSystemView fsv=new JFileChooser().getFileSystemView();    Icon icon=fsv.getSystemIcon(new File("D:/a.pdf"));



原创粉丝点击