JDK1.2 Swing采用TrueType字体作为显示字体,而目前大多数UNIX操作系统还不支持中文TrueType字体,所以显示到中文时就变成了小方块。本文讲解如何使得中文在Swing中正常显示。

1。中文字体的获得

中文TrueType字体是容易获得的,如在Windows操作系统中缺省提供的几种,或市面上的方正,文鼎等。购买后拷贝至Unix平台上即可。

2。让Java引用指明的中文字体

在JRE 的fonts.propertie中指明了Java运行时字体的来源,在Windows 环境下,字体名形如:Courier New,ANSI_CHARSET,而在Unix下,字体名则为:adobe-times-medium-r-normal--*-%d-*-*-*-*-iso8859-1。所以,即便是同样的字体,在font.properties中的写法也是不一样的。Unix下,关于一个TrueType字体文件中包含了几种字体类型,是通过字体所在目录中fonts.dir文件指明的。以下是fonts.dir示例:

4

SIMSUN.TTF -misc-SimSun-medium-r-normal--0-0-0-0-p-0-ascii-0

SIMSUN.TTF -misc-SimSun-medium-r-normal--0-0-0-0-p-0-fcd8859-15

SIMSUN.TTF -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-15

SIMSUN.TTF -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1

开头的4指明在这个目录中有4种字体,都存放于SimSun.TTF(宋体)文件中。关于fonts.dir的生成,在 提供了一个工具 ttmkfdir, 在字体所在目录运行即可。这个工具需要perl 5 和 freetype 1.1,Perl 5一般在Unix平台上都有,freetype1.1在 。再举例几个常用的字体文件名:

SimYou.ttf -ZHUHAI Stone-YouYuan-medium-r-normal--0-0-0-0-m-0-ascii-0 (幼圆)

SimLi.ttf -ZHUHAI Stone-LiSu-medium-r-normal--0-0-0-0-m-0-ascii-0(隶书)

SIMKAI.TTF -misc-KaiTi_GB2312-medium-r-normal--0-0-0-0-p-0-ascii-0(楷体)

SIMHEI.TTF -misc-SimHei-medium-r-normal--0-0-0-0-p-0-ascii-0 (黑体)

SIMFANG.TTF -misc-FangSong_GB2312-medium-r-normal--0-0-0-0-p-0-ascii-0 (仿宋)

接下来修改font.properites文件(如果有相应的中文字体配置文件就更好,替换掉其中非TrueType中文字体,像在HP-UX上就有font.properties.zh_CN,再覆盖font.properties文件),可以定位其中一种字体名,用上面的中文字体名替换,下面是在HP-UX上修改后的fonts.properties部分示例:

serif.plain.0=-adobe-times-medium-r-normal--*-%d-*-*-*-*-iso8859-1

serif.plain.1=-misc-SimSun-medium-r-normal--*-%d-*-*-p-*-iso8859-15

serif.plain.2=-adobe-symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific

serif.plain.3=-adobe-symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific

#serif.italic.0=-agfa-cgtimes-medium-i-normal--*-%d-*-*-p-*-iso8859-1

serif.italic.0=-adobe-times-medium-i-normal--*-%d-*-*-*-*-iso8859-1

serif.italic.1=-misc-SimSun-medium-r-normal--*-%d-*-*-p-*-iso8859-15

serif.italic.2=-adobe-symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific

serif.italic.3=-adobe-symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific

#serif.bold.0=-agfa-cgtimes-bold-r-normal--*-%d-*-*-p-*-iso8859-1

serif.bold.0=-adobe-times-bold-r-normal--*-%d-*-*-*-*-iso8859-1

serif.bold.1=-misc-SimSun-medium-r-normal--*-%d-*-*-p-*-iso8859-15

serif.bold.2=-adobe-symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific

serif.bold.3=-adobe-symbol-medium-r-normal--*-%d-*-*-p-*-adobe-fontspecific

。。。

注意字体文件中的-misc-SimSun-medium-r-normal--0-0-0-0-p-0-fcd8859-15在写入font.properties时被改为上面的-misc-SimSun-medium-r-normal--*-%d-*-*-p-*-iso8859-15,以实现TrueType字体的平滑缩放。

运行Java应用程序时,设置环境变量JAVA_FONTS为中文TrueType字体所在目录,如:

export JAVA_FONTS=/usr/lib/X11/fonts/ttfdir

这样,Swing 的中文显示就正常了

linux swing 字体颜色,Unix/Linux平台下JDK 1.2 中Swing的中文显示相关推荐

  1. linux终端字体颜色_使用printf打印出各种颜色字体

    我的博客:https://blog.csdn.net/qq_37388044 我的知乎:https://www.zhihu.com/people/bbtganmin 联系方式:知乎私信 转载或者引用本 ...

  2. linux程序卸载动态库,Intel平台下linux中ELF文件动态链接的加载、解析及实例分析(二): 函数解析与卸载...

    在 IBM Bluemix 云平台上开发并部署您的下一个应用. 相信读者已经看过了 Intel平台下Linux中ELF文件动态链接的加载.解析及实例分析(一): 加载的内容了,了解了ELF文件被加载的 ...

  3. linux shell字体大小,改变Linux Shell中的字体和背景颜色

    使用Linux的朋友一定熟悉文本界面上的黑底白字和X上的白底黑字,这两种颜色可以说是经典的搭配,清晰明了.但是你也可以根据自己的喜好使字体和背景换个颜色. 下面我介绍一下RedHat的字体和背景颜色的 ...

  4. linux 音频驱动的流程,Intel平台下Linux音频驱动流程分析

    [软件框架] 在对要做的事情一无所知的时候,从全局看看系统的拓扑图对我们认识新事物有很大的帮助.Audio 部分的驱动程序框架如下图所示: 这幅图明显地分为 3 级. 上方蓝色系的 ALSA Kern ...

  5. linux面板字体颜色,如何在Ubuntu Linux中为Gnome面板自定义字体和颜色

    本周早些时候,我们向您展示如何使侏儒面板完全透明的 ,但你真的需要一些定制的字体和颜色,使效果更好地工作. 这里是如何做到这一点. 本文是如何定制Ubuntu桌面的多部分系列的第一部分,由How-To ...

  6. linux查看地址和,UNIX/LINUX平台下查看MAC和WWN地址的方法

    归纳了一下,在UNIX/LINUX平台下查看MAC和WWN地址的方法 查看MAC地址 hp-ux #lanscan tru64 unix #netstat -ia aix #lsdev -Cc if ...

  7. linux msgsend 头文件,Unix/Linux进程间通信

    一,Linux下进程间通信的几种主要手段简介: 1,管道(Pipe)及有名管道(named pipe) 管道可用于具有亲缘关系进程间的通信 有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功 ...

  8. Linux字体关联到wine中,Wine的中文显示与字体设置

    出自Linux Wiki 提示:此文已超过 7 年(2711 天)未更新,如发现内容过时或有误,欢迎改进:) 字无法显示 注意字无法显示和显示为乱码是不同的症状,如果看到乱码,请确保系统语言和运行Wi ...

  9. linux ftp 命令lcd,Unix/Linux 中经常使用的 ftp 命令小例

    FTP 是一种文件传输协议.用于将文件从一台服务器转移到另一台服务器,FTP是使用一个客户端和服务端进行链接.默认端口 21; 通过ftp连接到服务器. # ftp domain.com # ftp ...

最新文章

  1. 一个基于 Spring Boot 的项目骨架
  2. 20以内混合加减法100题_一年级数学20以内加减法混合运算练习题,寒假练习巩固!...
  3. 【零基础】讲述网络安全介绍
  4. 客户信贷应收总额相关
  5. mysql in/no in/like
  6. 2017.9.18 鬼谷子的钱袋 思考记录
  7. cmake 多次编译_Part01_CMakeLists构建管理多个模块的C代码
  8. GitHub Pages自定义域名如何支持https
  9. DDWRT如何开启samba共享
  10. 安卓测试常用的 ADB 命令大全,非常全!!!!!
  11. linux运行.xpi,XPI 文件扩展名: 它是什么以及如何打开它?
  12. 《阿里巴巴大数据实践-大数据之路》读后感言
  13. JNCIS-FWV Study Guide v1.3
  14. 07-android-基站定位
  15. vmware虚拟机连接服务器超时,vmware连接远程服务器超时
  16. 金山wps的面试经历
  17. matlab求cos角,科学网—MATLAB求太阳高度角的小程序 - 张乐乐的博文
  18. 嵌入式linux与pc串口传输文件基于lrzsz
  19. 前端经典面经--助你金九银十面试无烦恼
  20. Android build.gradle文件详解

热门文章

  1. 7-1 圆形体体积计算器分数 20
  2. 三角函数与反三角函数
  3. 国密算法(SM1,SM2,SM3,SM4)和国际算法对应关系
  4. Winclone Pro 7 for mac(分区备份还原工具)汉化版
  5. 快速打造安全的车联网平台
  6. 08-ESP8266按钮处理
  7. 视频教程-SSM后台管理系统开发实战-Java
  8. vue elementui 年份列表和月份列表
  9. 【直播预告】用Greenplum技术生态构建智慧城市
  10. 华为笔记本适合计算机网络系学生,适合学生党笔记本电脑,MateBook D系列Windows锐龙版你pick了吗...