阅读内容

Linux下java swing问题的解决

[日期:2008-07-29] 来源:Linux公社  作者:Linux整理


在Linux做java开发的朋友都知道swing在Linux下有些很令人头疼的问题。

第一个问题就是scim输入法和swing的冲突问题导致键盘失效,尤其是开了compiz之后。

对于这个问题网上有很多处理的方法,例如添加环境变量AWT_TOOLKIT=MToolkit,这个方法还是不能解决swing程序中键盘失效的问题。

国外论坛上找到一个很好的解决方法就是:

sudo cp ~/.scim/config /root/.scim/

之后我在netbeans里面从来没有发生过键盘失效的问题

第二个麻烦就是在Ubuntu使用Java来编写Swing应用程序时一个比较大的问题就是不能使用SystemLookAndFeel。

例如运行jconsole的时候会报如下错:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.initSystemColorDefaults(GTKLookAndFeel.java:1267)
at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.loadStyles(GTKLookAndFeel.java:1509)
……

有的人给出不完美的解决方案,就是把语言环境改成英文:

export LANG=en

这样swing应用程序就可以正常运行了,但这样对于使用中文的用户来说就很不方便,界面变成了英文。实际上出现这个问题是因为swing的默认laf采用systemlaf,而Ubuntu里却没有定义这个laf

好的解决方法是在程序启动时传递JVM运行参数 -Dswing.systemlaf=javax.swing.plaf.metal.MetalLookAndFeel

或者在/etc/environment 文件在最后增加上:

_JAVA_OPTIONS="-Dswing.systemlaf=javax.swing.plaf.metal.MetalLookAndFeel"




本文评论       全部评论
发表评论
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款


点评: 字数
姓名:

L
I
N
U
X


GOOGLE搜索
Google