JavaFX の Hello World で NullPointerException

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Hello extends Application {

    @Override
    public void start(Stage stage) {
        stage.setTitle("Welcome to JavaFX!");
        StackPane root = new StackPane();
        Scene scene = new Scene(root, 300, 200);
        stage.setScene(scene);
        Label label = new Label("Hello World!");
        root.getChildren().add(label);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

これ実行すると画面は出るけど NullPointerException が出る。よくわかんねぇ…。ちなみに JavaFX 2.0.3 です。

追記 : root.getChildren().add(label) の行をコメントアウトするとぬるぽ出ない。これと stacktrace を合わせて考えるとフォント絡みか ?

参考 : stacktrace

java.lang.NullPointerException
    at com.sun.t2k.T2KFontFactory.resolveFontFiles(T2KFontFactory.java:828)
    at com.sun.t2k.T2KFontFactory.resolveWindowsFonts(T2KFontFactory.java:786)
    at com.sun.t2k.T2KFontFactory.getFullNameToFileMap(T2KFontFactory.java:1351)
    at com.sun.t2k.T2KFontFactory.getFontResource(T2KFontFactory.java:212)
    at com.sun.t2k.LogicalFont.getSlot0Resource(LogicalFont.java:174)
    at com.sun.t2k.LogicalFont.getDefaultAAMode(LogicalFont.java:300)
    at com.sun.t2k.LogicalFont.getStrike(LogicalFont.java:304)
    at com.sun.t2k.T2KFont.getStrike(T2KFont.java:70)
    at com.sun.javafx.font.PrismFontUtils.getFontMetrics(PrismFontUtils.java:14)
    at com.sun.javafx.font.PrismFontLoader.getFontMetrics(PrismFontLoader.java:434)
    at javafx.scene.text.Text.<init>(Text.java:103)
    at com.sun.javafx.scene.control.skin.LabeledSkinBase.<init>(LabeledSkinBase.java:124)
    at com.sun.javafx.scene.control.skin.LabelSkin.<init>(LabelSkin.java:38)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at javafx.scene.control.Control.loadSkinClass(Control.java:928)
    at javafx.scene.control.Control.impl_cssSet(Control.java:1006)
    at javafx.scene.control.Labeled.impl_cssSet(Labeled.java:625)
    at javafx.scene.Node.impl_cssSet(Node.java:6395)
    at com.sun.javafx.css.StyleHelper.transitionToState(StyleHelper.java:755)
    at javafx.scene.Node.impl_processCSS(Node.java:6247)
    at javafx.scene.Parent.impl_processCSS(Parent.java:965)
    at javafx.scene.control.Control.impl_processCSS(Control.java:1033)
    at javafx.scene.Parent.impl_processCSS(Parent.java:972)
    at javafx.scene.Node.processCSS(Node.java:6215)
    at javafx.scene.Scene.doCSSPass(Scene.java:385)
    at javafx.scene.Scene.preferredSize(Scene.java:1187)
    at javafx.scene.Scene.impl_preferredSize(Scene.java:1231)
    at javafx.stage.Window.adjustSize(Window.java:139)
    at javafx.stage.Window.access$700(Window.java:50)
    at javafx.stage.Window$13.invalidated(Window.java:692)
    at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:88)
    at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:122)
    at javafx.stage.Window.setShowing(Window.java:744)
    at javafx.stage.Window.show(Window.java:759)
    at javafx.stage.Stage.show(Stage.java:129)
    at sample.Hello.start(Hello.java:19)
    at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:298)
    at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:152)
    at com.sun.javafx.application.PlatformImpl$3.run(PlatformImpl.java:119)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
    at com.sun.glass.ui.win.WinApplication$2$1.run(WinApplication.java:62)
    at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
    at com.sun.t2k.T2KFontFactory.resolveFontFiles(T2KFontFactory.java:828)
    at com.sun.t2k.T2KFontFactory.resolveWindowsFonts(T2KFontFactory.java:786)
    at com.sun.t2k.T2KFontFactory.getFullNameToFileMap(T2KFontFactory.java:1351)
    at com.sun.t2k.T2KFontFactory.getFontResource(T2KFontFactory.java:212)
    at com.sun.t2k.LogicalFont.getSlot0Resource(LogicalFont.java:174)
    at com.sun.t2k.LogicalFont.getDefaultAAMode(LogicalFont.java:300)
    at com.sun.t2k.LogicalFont.getStrike(LogicalFont.java:304)
    at com.sun.t2k.T2KFont.getStrike(T2KFont.java:70)
    at com.sun.javafx.font.PrismFontUtils.getFontMetrics(PrismFontUtils.java:14)
    at com.sun.javafx.font.PrismFontLoader.getFontMetrics(PrismFontLoader.java:434)
    at javafx.scene.text.Text.<init>(Text.java:103)
    at com.sun.javafx.scene.control.skin.LabeledSkinBase.<init>(LabeledSkinBase.java:124)
    at com.sun.javafx.scene.control.skin.LabelSkin.<init>(LabelSkin.java:38)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at javafx.scene.control.Control.loadSkinClass(Control.java:928)
    at javafx.scene.control.Control.impl_cssSet(Control.java:1006)
    at javafx.scene.control.Labeled.impl_cssSet(Labeled.java:625)
    at javafx.scene.Node.impl_cssSet(Node.java:6395)
    at com.sun.javafx.css.StyleHelper.transitionToState(StyleHelper.java:755)
    at javafx.scene.Node.impl_processCSS(Node.java:6247)
    at javafx.scene.Parent.impl_processCSS(Parent.java:965)
    at javafx.scene.control.Control.impl_processCSS(Control.java:1033)
    at javafx.scene.Parent.impl_processCSS(Parent.java:972)
    at javafx.scene.Node.processCSS(Node.java:6215)
    at javafx.scene.Scene.doCSSPass(Scene.java:385)
    at javafx.scene.Scene.preferredSize(Scene.java:1187)
    at javafx.scene.Scene.impl_preferredSize(Scene.java:1231)
    at javafx.stage.Window.adjustSize(Window.java:139)
    at javafx.stage.Window.access$700(Window.java:50)
    at javafx.stage.Window$13.invalidated(Window.java:692)
    at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:88)
    at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:122)
    at javafx.stage.Window.setShowing(Window.java:744)
    at javafx.stage.Window.show(Window.java:759)
    at javafx.stage.Stage.show(Stage.java:129)
    at sample.Hello.start(Hello.java:19)
    at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:298)
    at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:152)
    at com.sun.javafx.application.PlatformImpl$3.run(PlatformImpl.java:119)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
    at com.sun.glass.ui.win.WinApplication$2$1.run(WinApplication.java:62)
    at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
    at com.sun.t2k.T2KFontFactory.resolveFontFiles(T2KFontFactory.java:828)
    at com.sun.t2k.T2KFontFactory.resolveWindowsFonts(T2KFontFactory.java:786)
    at com.sun.t2k.T2KFontFactory.getFullNameToFileMap(T2KFontFactory.java:1351)
    at com.sun.t2k.T2KFontFactory.getFontResource(T2KFontFactory.java:212)
    at com.sun.t2k.LogicalFont.getSlot0Resource(LogicalFont.java:174)
    at com.sun.t2k.LogicalFont.getDefaultAAMode(LogicalFont.java:300)
    at com.sun.t2k.LogicalFont.getStrike(LogicalFont.java:304)
    at com.sun.t2k.T2KFont.getStrike(T2KFont.java:70)
    at com.sun.javafx.font.PrismFontUtils.getFontMetrics(PrismFontUtils.java:14)
    at com.sun.javafx.font.PrismFontLoader.getFontMetrics(PrismFontLoader.java:434)
    at javafx.scene.text.Text.<init>(Text.java:103)
    at com.sun.javafx.scene.control.skin.LabeledSkinBase.<init>(LabeledSkinBase.java:124)
    at com.sun.javafx.scene.control.skin.LabelSkin.<init>(LabelSkin.java:38)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at javafx.scene.control.Control.loadSkinClass(Control.java:928)
    at javafx.scene.control.Control.impl_cssSet(Control.java:1006)
    at javafx.scene.control.Labeled.impl_cssSet(Labeled.java:625)
    at javafx.scene.Node.impl_cssSet(Node.java:6395)
    at com.sun.javafx.css.StyleHelper.transitionToState(StyleHelper.java:755)
    at javafx.scene.Node.impl_processCSS(Node.java:6247)
    at javafx.scene.Parent.impl_processCSS(Parent.java:965)
    at javafx.scene.control.Control.impl_processCSS(Control.java:1033)
    at javafx.scene.Parent.impl_processCSS(Parent.java:972)
    at javafx.scene.Node.processCSS(Node.java:6215)
    at javafx.scene.Scene.doCSSPass(Scene.java:385)
    at javafx.scene.Scene.preferredSize(Scene.java:1187)
    at javafx.scene.Scene.impl_preferredSize(Scene.java:1231)
    at javafx.stage.Window.adjustSize(Window.java:139)
    at javafx.stage.Window.access$700(Window.java:50)
    at javafx.stage.Window$13.invalidated(Window.java:692)
    at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:88)
    at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:122)
    at javafx.stage.Window.setShowing(Window.java:744)
    at javafx.stage.Window.show(Window.java:759)
    at javafx.stage.Stage.show(Stage.java:129)
    at sample.Hello.start(Hello.java:19)
    at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:298)
    at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:152)
    at com.sun.javafx.application.PlatformImpl$3.run(PlatformImpl.java:119)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
    at com.sun.glass.ui.win.WinApplication$2$1.run(WinApplication.java:62)
    at java.lang.Thread.run(Unknown Source)

2012/05/14 追記 : 最新版の JavaFX 2.1 では改善されているようです。