java 如何得到文件的系统图标

任何一种文件类型,得到本地系统(windows,linux)针对该文件的图标,Icon或者image都可以我以前看到过有人解决过类似问题,一行代码就能搞定,根本用不到Im... 任何一种文件类型,得到本地系统(windows ,linux)针对该文件的图标,Icon或者image都可以
我以前看到过有人解决过类似问题,一行代码就能搞定,
根本用不到ImageIO,ImageReader之类的东西
展开
 我来答
samismiling
2015-07-09 · 知道合伙人软件行家
samismiling
知道合伙人软件行家
采纳数:1340 获赞数:5604

向TA提问 私信TA
展开全部

java可使用FileSystemView和ShellFolder类获取文件的小图标和大图标,以下是详细代码:

import java.awt.FlowLayout;
import java.io.File;
import java.io.FileNotFoundException;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.filechooser.FileSystemView;

public class GetFileIcon {
/**
 * @param args
 */
    public static void main( String[] args )
    {
        String    filePath    = "D:/sheet1.xlsx";
        File    f        = new File( filePath );
        JFrame    frm        = new JFrame();
        frm.setSize( 300, 200 );
        frm.setLocationRelativeTo( null );
        frm.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        frm.setVisible( true );
        frm.setLayout( new FlowLayout( 10, 10, FlowLayout.LEADING ) );

        JLabel sl = new JLabel( "小图标" );
        frm.add( sl );
        JLabel bl = new JLabel( "大图标" );
        frm.add( bl );

        sl.setIcon( getSmallIcon( f ) );
        bl.setIcon( getBigIcon( f ) );
    }


/**
 * 获取小图标
 * @param f
 * @return
 */
    private static Icon getSmallIcon( File f )
    {
        if ( f != null && f.exists() )
        {
            FileSystemView fsv = FileSystemView.getFileSystemView();
            return(fsv.getSystemIcon( f ) );
        }
        return(null);
    }


/**
 * 获取大图标
 * @param f
 * @return
 */
    private static Icon getBigIcon( File f )
    {
        if ( f != null && f.exists() )
        {
            try {
                sun.awt.shell.ShellFolder sf = sun.awt.shell.ShellFolder.getShellFolder( f );
                return(new ImageIcon( sf.getIcon( true ) ) );
            } catch ( FileNotFoundException e ) {
/* TODO Auto-generated catch block */
                e.printStackTrace();
            }
        }
        return(null);
    }
}
书荒莫慌
2010-04-30 · TA获得超过2972个赞
知道小有建树答主
回答量:700
采纳率:0%
帮助的人:535万
展开全部
FileSystemView fsv=new JFileChooser().getFileSystemView();
Icon icon=fsv.getSystemIcon(new File("123.jpg"));
系统中表示jpg格式文件图标就在icon变量中了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
道初潜珉
2019-10-12 · TA获得超过4024个赞
知道大有可为答主
回答量:3180
采纳率:34%
帮助的人:162万
展开全部
楼主你好
很高兴回答你的问题
有些手机,安装java软件时必须使用jad文件,比如三星的
回答完毕
谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式