请高手指点,Eclipse中java写的GUI程序,运行后有的中文显示成“口口”,有的显示正常 请高手指点,Eclipse中java写的GUI程序,运行后有的中文显示成“口口”,有的显示正常 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 中文是双字节编码需要先转换成Unicode。如果你的程序里中文是放在语言资源文件里的可以使用jdk自带的工具native2ascii.exe转换,如果是硬编码在程序里的,那么请看我的博客文章,我提供了一个类用来做转换。使用 Java 将中文字符转换成 Unicode 编码 http://blog.csdn.net/chenweionline/archive/2007/05/17/1612935.aspx 检查一下gui设置的字体是什么字体,该字体你电脑不支持会这样显示。如果是编码问题通常显示的是??之类的乱码 电脑应该是支持gui设置的字体的,因为在Eclipse中写了测试程序,界面中的中文都显示正常的,但我从CVS中Import一个Project(在其他的电脑上运行都是正常显示)运行后,界面中有的中文显示不了,比如说标签中文显示都是正常的,而JTable中的中文和下拉菜单中的中文就显示成“口口”,请高手指教……先谢了 jdk某个目录下需要增加字体映射 强制设置字体就好了,如: button.setFont(new java.awt.Font("宋体",Font.PLAIN, 12)); 电脑应该是支持gui设置的字体的,因为在Eclipse中写了测试程序,界面中的中文都显示正常的,但我从CVS中Import一个Project(在其他的电脑上运行都是正常显示)运行后,界面中有的中文显示不了,比如说标签中文显示都是正常的,而JTable中的中文和下拉菜单中的中文就显示成“口口”,请高手指教……先谢了如果你jtable中设置的字体你电脑不支持,那么就不能显示标签能正常显示,表示标签设置的字体和你jtable的是不一样的 选中你的工程 project->properties->resource->text file encoding->other->UTF-8 如果是jdk1.4版的swt不会出现这种问题,swing 会出现这种问题,如果是jdk5.0版的swt会出现这种问题,swing不会出现这种问题。o(∩_∩)o...哈哈 还是我来解答吧, /** * 设置所有Swing组件的预设字体。 * <pre> * 用法: * setUIFont (new javax.swing.plaf.FontUIResource("Serif",Font.ITALIC,12)); * <pre> * @param f */ public static void setUIFont (javax.swing.plaf.FontUIResource f) { java.util.Enumeration keys = UIManager.getDefaults().keys(); while (keys.hasMoreElements()) { Object key = keys.nextElement(); Object value = UIManager.get (key); if (value instanceof javax.swing.plaf.FontUIResource) UIManager.put (key, f); } }将以上方法加到你的代码中。启动时在main ()中调用. 调用方式如下:setUIFont(new Font("宋体",Font.PLAIN,12)); 那在LINUX下面用AWT/Swing写的GUI中中文都是小方块,怎么回事?而用SWT的就正常显示了. 只要是小方块的一般都是字体设置问题。你看你显示中文的jlable是用什么字体,建议用dialog字体,可正常显示 1: 编码错误是 “??”,字体错误是 “口口”,这点没错。你那种情况可能是出在字体上!2: 在java中,所有字符都是用utf编码的,即使是繁体字;要找到错误,你可以将那些出现“口口”的地方,加些字母或简单的简体字,如果字母或简体字能显示,那么那些出问题的字符一定是繁体字,你就要将其用“细明体”显示,如果都不能显示,那么,一定是上帝出了问题。 AWT-EventQueue-0 异常 拷贝数组问题 一个程序中启动了多个线程后,怎么去控制这些线程? jdbc访问数据库 100分大酬谢啊 请问如何能把用JBUILDER6 里写PDA程序,请教如何能写一个TEXT里显示HELLO WORLD,谢谢(想学) 简单问题 有谁知道将JTable设为只读的函数? 哪位大哥知道如何将rtf文件转化成html文件,请赐教,最好给个程序看看!多谢,多谢,120分奉上!!! input.nextLine()在程序中起的作用 java io字符流的问题 谢谢了 如何pack applet? JXLS求救 IF TAG!!!!!急
如果你的程序里中文是放在语言资源文件里的可以使用jdk自带的工具native2ascii.exe转换,如果是硬编码在程序里的,那么请看我的博客文章,我提供了一个类用来做转换。使用 Java 将中文字符转换成 Unicode 编码
http://blog.csdn.net/chenweionline/archive/2007/05/17/1612935.aspx
该字体你电脑不支持会这样显示。如果是编码问题通常显示的是??之类的乱码
如: button.setFont(new java.awt.Font("宋体",Font.PLAIN, 12));
如果你jtable中设置的字体你电脑不支持,那么就不能显示
标签能正常显示,表示标签设置的字体和你jtable的是不一样的
如果是jdk5.0版的swt会出现这种问题,swing不会出现这种问题。
o(∩_∩)o...哈哈
/**
* 设置所有Swing组件的预设字体。
* <pre>
* 用法:
* setUIFont (new javax.swing.plaf.FontUIResource("Serif",Font.ITALIC,12));
* <pre>
* @param f
*/
public static void setUIFont (javax.swing.plaf.FontUIResource f)
{
java.util.Enumeration keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements())
{
Object key = keys.nextElement();
Object value = UIManager.get (key);
if (value instanceof javax.swing.plaf.FontUIResource)
UIManager.put (key, f);
}
}
将以上方法加到你的代码中。启动时在main ()中调用.
setUIFont(new Font("宋体",Font.PLAIN,12));
而用SWT的就正常显示了.
你看你显示中文的jlable是用什么字体,
建议用dialog字体,可正常显示
你那种情况可能是出在字体上!
2: 在java中,所有字符都是用utf编码的,即使是繁体字;
要找到错误,你可以将那些出现“口口”的地方,加些字母或简单的简体字,如果字母或简体字能显示,那么那些出问题的字符一定是繁体字,你就要将其用“细明体”显示,如果都不能显示,那么,一定是上帝出了问题。