通过使用swt的首选项里的Preferencestore和java.util里的Property类可以对程序的配置信息进行文件存取。我在程序中两种方式都采用了,但在我的首选项的一个页面里,我想要对用户设置的程序字体进行保存,发现在FieldEditorPreferencePage里使用FontFieldEditor时,不知如何取得所设置字体的字体信息,查看了一下

觉得都没能直接拿到,后来索性直接用了doStore() ,配置文件里多了这么一行:
SYSTEM_FONT=1|\u5FAE\u8F6F\u96C5\u9ED1|9.0|0|WINDOWS|1|-12|0|0|0|400|0|0|0|-122|3|2|1|34|\u5FAE\u8F6F\u96C5\u9ED1;
终于是拿到了,但是怎么拿来用啊....
FontData date = PreferenceConverter.getFontData(preferenceStore, IConstants.SYSTEM_FONT);
  Font newFont = new Font(display, date); 
这样就可以了。而且必须放在shell.layout()之前才能生效。
关于Property类的读写网上很多现成的。基本就是下面这样:
importjava.io.BufferedInputStream;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;
importjava.util.Enumeration;
importjava.util.Properties;
/**
 * The Class Configuration.
 */
publicclassConfiguration {
      // 根据key读取value
      /**
       * Read value.
       *
       *@paramfilePath the file path
       *@paramkey the key
       *@returnthe string
       */
      publicstaticString readValue(String filePath, String key) {
            Properties props =newProperties();
            try{
                  InputStream in =newBufferedInputStream(newFileInputStream(filePath));
                  props.load(in);
                  String value = props.getProperty(key);
                  returnvalue;
            }catch(Exception e) {
                  e.printStackTrace();
                  returnnull;
            }
      }
      // 读取properties的全部信息
      /**
       * Read properties.
       *
       *@paramfilePath the file path
       */
      publicstaticvoidreadProperties(String filePath) {
            Properties props =newProperties();
            try{
                  InputStream in =newBufferedInputStream(newFileInputStream(filePath));
                  props.load(in);
                  Enumeration en = props.propertyNames();
                  while(en.hasMoreElements()) {
                        String key = (String) en.nextElement();
                        String Property = props.getProperty(key);
                        System.err.println(key +":"+ Property);
                  }
            }catch(Exception e) {
                  e.printStackTrace();
            }
      }
      // 写入properties信息
      /**
       * Write properties.
       *
       *@paramfilePath the file path
       *@paramparameterName the parameter name
       *@paramparameterValue the parameter value
       */
      publicstaticvoidwriteProperties(String filePath, String parameterName, String parameterValue) {
            Properties prop =newProperties();
            try{
                  InputStream fis =newFileInputStream(filePath);
                  // 从输入流中读取属性列表(键和元素对)
                  prop.load(fis);
                  // 调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。
                  // 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。
                  OutputStream fos =newFileOutputStream(filePath);
                  prop.setProperty(parameterName, parameterValue);
                  // 以适合使用 load 方法加载到 Properties 表中的格式,
                  // 将此 Properties 表中的属性列表(键和元素对)写入输出流
                  prop.store(fos,"Update '"+ parameterName +"' value");
            }catch(IOException e) {
                  System.err.println("Visit "+ filePath +" for updating "+ parameterName +" value error");
            }
      }
}

转载于:https://www.cnblogs.com/vucko/archive/2011/12/08/2280924.html

SWT FontFieldEditor使用相关推荐

  1. java swt 画按钮_向表中添加按钮(java swt)

    我正在尝试复制类似于此的UI: 我一直在关注如何创建表格每列中的按钮的作者说明(没有成功).我的项目与他的区别在于我正在尝试使用Tree而不是Table,而我正在使用eclipse TreeViewe ...

  2. Loonframwork到SWT的移植测试(JAVA GAME TEST SOURCE)

    愚以为,用SWT作界面,是一种在用Java写VB的体验. 本周心情极度恶劣,一直不想说话,也不想写新代码,郁闷中尝试了一下将Loonframework的代码移植到SWT.(其实我觉得AWT,SWT,S ...

  3. swt能单独在linux运行么,java – 在Mac上运行基于SWT的跨平台jar

    我一直在开发一个基于SWT的项目,该项目旨在部署为Java Web Start,从而在多个平台上使用. 到目前为止,我已经设法解决了SWT所依赖的特定于系统的图书馆出现的出口问题(见相关的thread ...

  4. SWT 和 SWING

      AWT都是重量级组件,通过调用平台对等体实现GUI,所以有个最大公约数问题.界面也很难看.     Swing绝大部分是轻量级组件,用Java自己绘制GUI,可以方便的使用各种L&F,但是 ...

  5. ECLIPSE启动不了,报错org.eclipse.swt.SWTException: Invalid thread access

    春节上班第二天一大早ECLIPSE启动不了,报错 org.eclipse.swt.SWTException: Invalid thread access 打开这个日志文件一看,里面报了一个异常: or ...

  6. Android Stability test occured SWT restart issue

    一.问题现象 1.System先ANR. 2.ANR之后系统重启. 测试方法: Stability test. Platform:MT6732 Android版本:4.4.4KK BuildType: ...

  7. SWT让耗时的操作后台运行

    2019独角兽企业重金招聘Python工程师标准>>> 先上段有问题的代码: final Button button = new Button(shell, SWT.CENTER); ...

  8. 关于Eclipse平台的使用和开发第一个SWT程序

    IBM把投入巨资开发的Eclipse作为一个开源项目捐献给了开源组织Eclipse.org Eclipse出色而有独创的平台特性,现在仍由IBM子公司OTI(主要从事Eclipse开发的人)继续领导着 ...

  9. SWT事件的四种写法

    一.匿名内部类写法     在创建SWT中的HelloWorld插件项目中就是用的这种写法,再次复制如下: button.addSelectionListener(new SelectionAdapt ...

最新文章

  1. openssl 生成 cert.key cert.pem
  2. python安卓版turtle模块下载_python之turtle的模块
  3. typedef 与 define
  4. c++异常Try catch
  5. 文件系统管理 之 文件和目录访问权限设置
  6. Qt5.7+Opencv2.4.9人脸识别(六)Tcp,Mysql,3DES,XML综合
  7. 信息学奥赛一本通 1138:将字符串中的小写字母转换成大写字母 | OpenJudge NOI 1.7 13
  8. Echart柱状图数值显示
  9. 解析SRAM存储容量及基本特点
  10. background,background-size背景图片和盒子模型
  11. 用Python实现表白代码 抖音最火的整蛊表白小程序如何做出来的
  12. 【算法】贪婪算法——每步都是最优解
  13. 1200PLC和Modbus485主站DCS系统通讯
  14. M1芯片的Mac上iPhone虚拟机滚动过快的问题
  15. radio 根据默认值选中
  16. JSP四大作用域,九大内置对象
  17. 计算机音乐文爱数字普,CG、贺敬轩《文爱》钢琴谱
  18. JavaScript中的函数中arguments、参数、默认值和表达式以及箭头函数
  19. Scratch模拟中国嫦娥探月工程,探索月球的背面!
  20. 简单的avi视频播放器程序

热门文章

  1. 无意中发现的MSDN软件下载网站
  2. C# 字符转ASCII码,ASCII码转字符
  3. NET USE 命令用法
  4. SVN Cleanup失败解决方法
  5. layer——极简的jquery弹出层插件
  6. React Native初探
  7. CentOS 7 上安装 Redis3.2.3 并开启外网访问
  8. FlashDevelop专用swc导出插件
  9. 关于如何学好游戏3D引擎编程的一些经验
  10. 3ds max sdk导出插件编写的心得