swt通过扩展名取系统图标,swt扩展名取图标,eclipse swt可

eclipse swt可以通过扩展名取得Program,从而取得系统图标,必须注意的是,在Linux平台下是扩展名是分大小写的,这里统一转化为小写处理即可。参考代码如下:package cn.outofmemory.test.resource;import java.util.Enumeration;import java.util.Hashtable;import java.util.logging.Logger;import org.eclipse.jface.resource.ImageDescriptor;import org.eclipse.swt.SWT;import org.eclipse.swt.graphics.Image;import org.eclipse.swt.graphics.ImageData;import org.eclipse.swt.program.Program;/** * 图像工厂 * * @author Leo * */public class ImageFactory { private static final Logger LOG = Logger.getLogger(ImageFactory.class.getName()); public static final String UNKNOWN_FILE = "unknown.png"; public static final String DLL_FILE = "dll.png"; private static Hashtable images = new Hashtable(); private ImageFactory() { } /** * 销毁工厂 */ public static void dispose() { Enumeration e = images.elements(); while (e.hasMoreElements()) { Image image = e.nextElement(); if (!image.isDisposed()) { image.dispose(); } } images.clear(); } /** * 取文件的系统图标 * * @param fileName * 文件名 * @return 文件的系统图标 */ public static Image getSystemIconImage(String fileName) { if (fileName == null) { SWT.error(SWT.ERROR_NULL_ARGUMENT); } Image iconImage = null; int dot = fileName.lastIndexOf('.'); if (dot != -1) {// 有扩展名 String extension = fileName.substring(dot).toLowerCase();//linux下分大小 写 iconImage = images.get(extension);//缓存 if (iconImage == null) { iconImage = loadProgramImage(extension); } if (iconImage == null) {// 无系统关联图标 LOG.info("无系统关联图标:"+fileName); iconImage = loadDefined(extension); } } else {// 无扩展名 iconImage = loadImage(UNKNOWN_FILE); } return iconImage; } /** * 加载预定义图标 * @param extension 文件扩展名 * @return 预定义图标,或未知图标 */ private static Image loadDefined(String extension) { Image iconImage; if (".dll".equals(extension)) { iconImage = loadImage(DLL_FILE); } else { iconImage = loadImage(UNKNOWN_FILE); } images.put(extension, iconImage); return iconImage; } /** * 加载关联图标 * @param extension 文件扩展名 * @return 文件的关联图标,或为 null */ private static Image loadProgramImage(String extension) { Image iconImage = null; Program program = Program.findProgram(extension); if (program != null) { ImageData imageData = program.getImageData(); if (imageData != null) { iconImage = new Image(null, imageData, imageData.getTransparencyMask()); images.put(extension, iconImage); } } return iconImage; }}

java swt换图标,swt通过扩展名取系统图标,swt扩展名取图标,eclipse swt可相关推荐

  1. debain修改服务器网卡名,Debian 系统修改网卡ens33名称为 eth0

    1. 编辑文件 /etc/default/grub 修改下面的值 初始值 GRUB_CMDLINE_LINUX="" 修改后 GRUB_CMDLINE_LINUX="ne ...

  2. win7 64计算机图标如何设置,Win7 64位系统下如何自定义更改磁盘图标【图文】

    每次打开计算机后看到的磁盘都是一样的图标大家应该也有点腻了吧,其实我们可以通过自定义更改磁盘图标的方法来让本地磁盘更新颖,那么在win7 64位系统下如何更改呢?方法也是很简单的,下面跟随小编来学习一 ...

  3. 添加网络计算机名,windows10系统,更改计算机名后,网络中看不见自己的电脑了。...

    您好! 了解到您的问题. 建议您将不能访问的电脑的防火墙暂时关闭看看. 您还可以尝试以下方法,查看效果: 进入:控制面板 – 网络和 Internet – 网络和共享中心 – 高级共享设置,确保当前配 ...

  4. android 程序包名,android系统一些应用包名的整理

    com.android.dialer,对应的类名是com.android.dialer.DialtactsActivity com.android.gallery3d,对应的类名是com.androi ...

  5. java基于eclipse.swt实现内嵌浏览器

    注意事项:采用32位jdk和XULRunner1.9.2 win32版本(我曾尝试过64位都失败了,劝各位也别试了) 火狐内核才用注册XULRunner准备用IE的话就不用注册了 准备工作 1准备 e ...

  6. 基于eclipse swt做java浏览器内嵌等功能

    http://wangzi6hao.iteye.com/blog/531550 swt-3.5M4-win32-win32-x86.zip 包下载地址:http://download.csdn.net ...

  7. 根据文件扩展名获取系统图标

    1 /// <summary> 2 /// 根据文件后缀名获取系统图标. 3 /// </summary> 4 /// <param name="extensi ...

  8. java swt 刷新,java – org.eclipse.swt.SWTException:从表刷新中“处理小部件”

    该应用程序是基于 Eclipse 3.6的RCP(因此jface版本3.5.2)在Windows 7上运行. 我有一个包含TableViewer的自定义View类,并在其上调用refresh().有时 ...

  9. 知道文件扩展名,如何获得在系统中该文件类型的图标

    -----------------------   //  FAQ整理:ccrun(老妖)   //  2005.11.30   ----------------------- 请教:知道文件扩展名, ...

最新文章

  1. Fedora9建立交叉编译环境
  2. stm32cubemx生成不了keil工程文件_STM32CubeMX系列教程03_创建并生成代码工程
  3. 探讨磷酸铁锂电池在UPS的应用
  4. 绘制五彩泡泡python_五彩泡泡教案
  5. mysql not in 转化_[转]mysql里not in语句怎么写 | 学步园
  6. 机器学习作业班_python实现支持向量机
  7. JAVA数据类型和运算符2
  8. 容器技术之Kubernetes
  9. 机器学习——武林盟主分享机器学习之武功秘籍
  10. Linux内存:内存管理的实质 (转CU上frank_seng 的总结,感谢frank_seng )
  11. 晋商到底是怎么生与死的?
  12. idea toggle offline mode
  13. php执行fastlane,fastlane教程
  14. java jnlp被阻止_JNLP 被java安全阻止
  15. 有没有免费的 BI 软件
  16. 《ppt》word插入批注,修改作者
  17. 国内公认超级美景,有时间和你心爱的人开始一段旅程
  18. GLUT, freeGLUT, GLFW, GLEW, GLAD 关系与区别
  19. 污水中去除重金属的工艺解析—离子交换树脂
  20. TCP服务器简陋模板

热门文章

  1. 俄罗斯方块(2013.9.27)
  2. Chromium源码下载问题及方案汇总
  3. Java毕设项目基于的智慧小区(java+VUE+Mybatis+Maven+Mysql)
  4. java如果智慧小区物业系统,基于ssm\springboot智慧小区物业管理平台实现
  5. Appium报错InvalidArgumentException: Message: invalid argument: invalid locator
  6. 用10行代码检测脸部情绪
  7. 卧槽!Python最牛的14张思维导图 | 附下载方式
  8. #博学谷it学习技术支持#探花交友项目:用户登录
  9. java 微信昵称过滤表情
  10. Excel VBA高级编程-关键字查找数据库