如何从 Java 应用程序获取要显示的文件的图标?

发布于 2024-08-01 16:44:55 字数 92 浏览 3 评论 0原文

是否可以从 Java 桌面应用程序中找到给定文件显示的图标(也许基于它的 mime 类型)? 具体来说,我想请求主机操作系统显示图标,以便它可以匹配用户期望看到的内容。

Is it possible from a Java desktop app to find the icon to display for a given file, perhaps based on it's mime type? Specifically I want to ask the host OS for the icon to display so it can match what the user would expect to see.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

私野 2024-08-08 16:44:55

这里有一些示例。 相关代码为:

FileSystemView view = FileSystemView.getFileSystemView();    
Icon icon = view.getSystemIcon(file);    

编辑(包含注释)官方帮助页面为此处

There is some example here. The relevant code would be:

FileSystemView view = FileSystemView.getFileSystemView();    
Icon icon = view.getSystemIcon(file);    

Edit (included comment) The official help page is here.

老子叫无熙 2024-08-08 16:44:55

据我所知,您唯一能做的就是使用 JTree 的 DefaultTreeCellRenderer。 您可以在 Java API 中阅读更多信息

我在这里给大家举几个例子。 我已经有一段时间没有使用它了,所以你需要更深入地挖掘才能得到你想要的东西。

UIDefaults defaults = UIManager.getDefaults( );

Icon computerIcon = defaults.getIcon( "FileView.computerIcon" );
Icon floppyIcon   = defaults.getIcon( "FileView.floppyDriveIcon" );
Icon diskIcon     = defaults.getIcon( "FileView.hardDriveIcon" );
Icon fileIcon     = defaults.getIcon( "FileView.fileIcon" );
Icon folderIcon   = defaults.getIcon( "FileView.directoryIcon" );

AS far as I know the only thing you can do is using the JTree's DefaultTreeCellRenderer. You can read more in the Java API.

I'll give you a few examples here. I haven't used it in a while so you will need to dig a little deeper to get what you want.

UIDefaults defaults = UIManager.getDefaults( );

Icon computerIcon = defaults.getIcon( "FileView.computerIcon" );
Icon floppyIcon   = defaults.getIcon( "FileView.floppyDriveIcon" );
Icon diskIcon     = defaults.getIcon( "FileView.hardDriveIcon" );
Icon fileIcon     = defaults.getIcon( "FileView.fileIcon" );
Icon folderIcon   = defaults.getIcon( "FileView.directoryIcon" );
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文