`
skull
  • 浏览: 17949 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

swing英文版xp乱码问题解决

阅读更多

    最近在维护swing程序时,有客户发现英文版xp下存在乱码问题(由于某些原因用户不能换系统),一开始以为是操作

 

系统设置问题,但用户说其他软件中文显示都正常,于是

 

找了VMware装了英文版的windows xp  一试 果然是乱码。

 

分析原因如下:其他软件中文显示都正常 说明os中文字库已装,估计是和jre有关,于是

 

就找和jre有关编码集问题

 

有人说和编译时候的encoding参数有关

 

样例代码在中文平台上编译,生成zhclass
样例代码在英文平台上编译,输出enclass
(1) zhclass在中文平台上执行ok,但是在英文平台上不行
(2) enclass在英文平台上执行ok,但是在中文平台上不行
出处:http://oznyang.iteye.com/blog/30697

 

我一直没找到这个参数怎么会使用,但是找到了执行时设置支付编码集的命令

 

-D<name>=<value> set a system property

 

如: javaw -Dfile.encoding=GBK -cp  xx.jar com.xx.main

 

System.getProperties() 中和字符集有关的变量有:

file.encoding
sun.io.unicode.encoding
sun.jnu.encoding
user.country
user.languag

 

进尝试发现file.encoding有对控制台的System.out.println有用加了后无乱码,但是界面上乱码依旧。

 

必须当作启动参数设置,在程序中System.setProperties("file.encoding", "GBK")无效果


后来继续网上搜索,找到原因如下:

swing中UIManager根据操作系统语言设置的不同会使用了默认的字体

 

英文版windows xp下默认字体为:
family=Tahoma,name=Tahoma,style=plain,size=11


Tahoma好像不支持中文乱码全是方框需替换成本地指定的能显示中文的字体样式 比如: 宋体

Font font = new Font("宋体", Font.PLAIN, 12);
Enumeration<Object> keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements()) {
    Object key = keys.nextElement();
    if (UIManager.get(key) instanceof FontUIResource){
        UIManager.put(key, new FontUIResource(font));
    }
    else if(UIManager.get(key) instanceof Font){
     UIManager.put(key, font);
    }
    //System.out.println("key:"+key+"  value:"+UIManager.get(key));
}

 启动时强制指定UIManager中的字体设置即可解决界面上的方框乱码,

 

这时发现 标题栏还是乱码。。。

又继续搜索,发现标题栏是使用皮肤包substance的标题栏

JFrame.setDefaultLookAndFeelDecorated(true);

 
找了半天也没找到解决方法,目前只能使用swing自带的标题栏,不加上面语句就可以正常显示。

 

附件为测试demo

 

 

0
1
分享到:
评论

相关推荐

    swing中文乱码问题(Linux和window)

    在Windows系统下解决Swing中文乱码问题的步骤与Linux系统有所不同,但同样重要。 **第一步:** 打开控制面板,进入“区域和语言”选项。 **第二步:** 在“管理”标签页下,点击“更改系统区域设置”。 **第三步...

    SWING乱码font.zip

    在压缩包文件"SWING乱码font.zip"中,可能包含了用于解决Swing乱码问题的示例代码、自定义字体文件或其他相关资源。解压后,你可以根据提供的示例来调整你的Swing应用,确保文本的正确显示。如果遇到问题,可以通过...

    Linux下java的Swing程序乱码解决

    本文将详细探讨Linux下Java Swing程序中文乱码的原因及解决方案,帮助开发者有效解决此类问题。 ### 一、问题根源分析 #### 1. 编码设置不一致 在Linux系统中,Java应用的字符编码可能与系统默认的字符编码不同,...

    swing 手册 英文版

    本手册是O'Reilly出版的《Java Swing》英文版,以PDF格式提供,是深入理解和学习Swing不可或缺的资源。 在Swing中,你可以找到各种组件,如按钮(JButton)、文本框(JTextField)、滚动面板(JScrollPane)、菜单...

    解决swing白屏问题的jjre

    Swing是Java GUI库的一部分,用于构建桌面应用程序。在某些情况下,用户可能会遇到“白屏”问题,这通常是由于Swing组件渲染...如果可能,最好从官方渠道获取最新的JRE,并尝试通过调整代码或者升级JDK版本来解决问题。

    Manning Swing 2nd(英文版)

    - **专业Swing开发者**:对于已经有一定Swing基础的开发者而言,本书可以作为一本宝贵的参考书籍,帮助他们深入理解和解决实际开发中的复杂问题。 - **Java GUI开发人员**:无论是对于正在学习Swing的新手还是已经...

    swing 应用框架 1.3 英文版 API

    Swing应用框架1.3英文版API是Java开发中用于构建图形用户界面(GUI)的重要工具,它基于Java Foundation Classes (JFC) 并且扩展了AWT(Abstract Window Toolkit)库,提供了更为丰富的组件和功能。这个API文档通常...

    jre1.6Swing精简版

    Java运行环境(JRE,Java Runtime Environment)是执行Java应用程序所必需的基础软件组件,它包含了Java虚拟机(JVM)以及Java核心类库。...对于需要运行旧版Swing应用的用户,这是一个理想的解决方案。

    java swing简单版qq

    在这个“java swing简单版qq”项目中,开发者利用Swing构建了一个基础的即时通讯应用,模拟了QQ的基本功能,如聊天和更换皮肤。下面我们将深入探讨Java Swing以及如何使用它来实现这样的应用程序。 首先,Swing是...

    swing E版

    Swing E版是一款基于Java Swing库的扩展工具,它提供了更丰富的组件和功能,以帮助开发者构建更加美观、功能强大的图形用户界面(GUI)。在Java编程中,Swing是Java Foundation Classes (JFC)的一部分,用于创建桌面...

    graalvm编译swing失败问题处理

    描述中提到的文章链接虽然无法直接访问,但从上下文可以推测,该文章可能详细记录了作者在尝试使用GraalVM编译Swing应用时遇到的困难,以及如何逐步解决问题的过程。Swing是Java的一个图形用户界面(GUI)工具包,...

    精通 JAVASWING中文版

    总之,“精通 JAVASWING中文版”会带你全面掌握Java Swing 的核心概念和技术,让你有能力创建功能丰富且用户体验良好的Java桌面应用程序。无论你是初学者还是有经验的开发者,这本书都将是你提升 Swing 技能的重要...

    解决Linux操作系统下Java的中文乱码问题

    压缩包中的`simsun.ttc`文件是宋体的TrueType字体集合,它可能用于解决Java图形界面(如Swing或JavaFX)显示中文字符的问题。如果你的Java应用需要显示中文界面,确保已安装并加载了支持中文的字体,例如SimSun...

    Swing开发常见难点疑点解决之道

    本文将深入探讨"Swing开发常见难点疑点解决之道",通过具体的示例和代码来解答这些问题。 首先,我们关注的是"可编辑JList"。JList是Swing中的一个组件,通常用于展示不可编辑的项目列表。但有时我们可能需要让用户...

    JFreechart 在linux下不显示及中文乱码问题

    `zysong.ttf` 文件可能是一个包含中文字符的TrueType字体文件,可以尝试在JFreechart中加载这个字体以解决乱码问题。 **解决方案** 1. **检查Java版本**:确认Java版本与JFreechart兼容,并更新到最新稳定版本。 ...

    javaswing版本远程控制

    "javaswing版本远程控制"涉及了Java桌面应用开发、网络通信、远程操作以及版本管理等多个IT领域的知识,需要开发者具备扎实的Java基础,熟悉网络编程和远程控制原理,并能灵活运用各种工具和技术来实现定制化的远程...

    swing-layout-1.0.3

    swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3...

    JavaSwing_O-Reilly英文版

    JavaSwing_O-Reilly英文版,好看的东西要分享

    JFreeChart无中文乱码版本

    这个特定的版本,被称为“JFreeChart无中文乱码版本”,特别优化了解决在处理中文字符时可能出现的乱码问题,使得在中文环境下使用JFreeChart变得更加友好。 JFreeChart支持多种类型的图表,包括但不限于柱状图、...

Global site tag (gtag.js) - Google Analytics