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. C#中DateTime.Now.Ticks的用法和说明
  2. .NET Core的日志[2]:将日志输出到控制台
  3. Cell子刊:辛秀芳组发现病原菌效应因子操纵植物ABA激素通路促进侵染的新机制...
  4. RxSwift 小记 Error Handling Operators(catchError,retry)
  5. Android app开发捷径,让你少去踩坑
  6. 吴恩达成立新公司,签约富士康,专注制造业AI变革(附视频)
  7. 中石油-高精度除法-java版
  8. matlab 高斯一阶导,将Matlab高斯导数转换为Opencv
  9. 浅析去中化区块链游戏资产交易平台
  10. 清除浮动的方法总结CSS实现水平垂直居中方法总结
  11. n型半导体和p型半导体的区别_VNX系列大流量工业型膜堆, 为半导体等行业提供超纯水!...
  12. CCNA2.0笔记_ACL
  13. FPGA状态机跑飞原因分析
  14. linux mint关于web开发的相关环境配置
  15. NOI(OJ)编程基础篇
  16. 解决Ubuntu下博通网卡驱动问题
  17. Oracle中如何用一个表的数据更新另一个表中的数据_转载
  18. pycharm汉化教程
  19. 【图像超分辨率重建】——HAN论文阅读笔记
  20. TS 36.211 V12.0.0-上行(1)-时隙结构和物理资源

热门文章

  1. 干货:一文看懂网络爬虫实现原理与技术(值得收藏)
  2. Zspace(笔触震动)
  3. 计算机工程与应用论文发表,计算机工程与应用论文模板(范文).doc
  4. Word快捷键设置上下标;Word取消表格虚线;Word查找数学符号
  5. 人工智能是什么?我来告诉你!
  6. linux初入门问题零碎(ubuntu)
  7. BAT全球扩张AI路线图:百度早于谷歌,腾讯投资最多
  8. 计算机开机白屏怎么处理,电脑打开白屏怎么回事
  9. s计算机职业评估需要英语嘛,澳洲移民计算机职业评估指南
  10. win7下IIS的安装和配置 图文教程