Chinaunix首页 | 论坛 | 博客
  • 博客访问: 151776
  • 博文数量: 34
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 346
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-19 09:53
文章分类

全部博文(34)

文章存档

2011年(1)

2009年(33)

我的朋友

分类: Java

2009-07-09 09:35:08

本文转载自:

Ubuntu 7.10
Java 6
netbeans-6.0.1-ml-linux

用netbeans新建一个"Java 桌面应用程序"(Java Desktop Application),全部默认,编译成功,但是无法运行,会显示如下错误提示(重点部分):
Couldn't set LookandFeel Application.lookAndFeel = "system"
java.lang.NullPointerException ....

Exception in thread "AWT-EventQueue-0" java.lang.Error: Application class desktopapplication1.DesktopApplication1 failed to launch
at org.jdesktop.application.Application$1.run(Application.java:177) ...

原因在于java窗口程序套用GTK布景主题(GTKLookAndFeel)。Netbeans 6 的 窗口化程序的默认情况下 Look and Feel 会直接套用操作系统的环境值。 这个问题也会同时存在其他使用Java GUI + GTK 的环境。最快修复这个问题的办法是更改该方案

1)Properties -> Desktop App -> Look & Feel值从"System Default" -> "Java Default" 即可。

2)项目->属性->应用程序->桌面应用程序->外观:将系统缺省设置改为Java缺省设置即可。

但是这样的话,程序将不能套用系统的主题。

另一个较好的解决办法就是设置全局字体:

public static void main(String[] args) {
setUIFont(new FontUIResource("Sans",0,12));
launch(TransportApp.class, args);
}


public static void setUIFont(javax.swing.plaf.FontUIResource f) {
//setUIFont(new javax.swing.plaf.FontUIResource("Sans",java.awt.Font.PLAIN,9));
Enumeration keys = UIManager.getDefaults().keys();
while(keys.hasMoreElements()){
Object key = keys.nextElement();
Object value = UIManager.get(key);
if(value instanceof FontUIResource){
UIManager.put(key, f);
}
}
}

阅读(705) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~