swing在ubuntu下中文乱码问题

使用swing编写图形界面,可以在windows下和linux(ubuntu)下创建一致的图形界面应用。但是编写swing使用java,需要编译,语法也比较繁琐。

使用groovy的swing支持,可以简化swing开发,可参见:

http://groovy.codehaus.org/Swing+Builder

这里对上面链接中的第一个示例稍作改动:

#!/usr/bin/env groovy

import groovy.swing.SwingBuilder
import java.awt.BorderLayout as BL

def swing = new SwingBuilder()
count = 0
def textlabel
def frame = swing.frame(title:’示例’, size:[300,300]) {
    borderLayout()
    textlabel = label(text:"请点击按钮", constraints: BL.NORTH)
    button(text:’请点击’,
            actionPerformed: {count++; textlabel.text = "点击 ${count} 次。"; println "点击"},
            constraints:BL.SOUTH)
}
frame.pack()
frame.show()

 

结果会出现部分中文乱码的情况。

image

一般这种情况,是字体问题。解决办法,参考了这个帖子:

http://www.oklinux.cn/html/Basic/jyjq/20091004/73713.html

需要注意的是该帖子的:

sudo cat fallback/fonts.scale > fonts.dir

不能正常执行,报告错误:

bash: fonts.dir: Permission denied

正确的做法,列在这里:

sudo mkdir /usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback/

sudo ln -s /usr/share/fonts/truetype/wqy/*.* /usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback

cd /usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback

sudo mkfontscale

cd ..

sudo sh -c "cat fallback/fonts.scale >> fonts.dir"

运行程序。

image

PDF    发送文章为PDF   

这篇文章上的评论的 RSS feed TrackBack URI

Leave a Reply