-1

CSS を使用せずに次のコードで背景画像を実装しようとしていますが、うまくいきません。

以下はコード、およびエラーです

コード

Group root = new Group();
Scene scene = new Scene(root, 650, 1180); //1180, 650

String image = JavaFXApplication4.class.getClass().getResource("wallpaper4.jpg").toExternalForm();
root.setStyle("-fx-background-image: url('" + image + "'); -fx-background-repeat: stretch; -fx-background-size: 650 1180;-fx-background-position: top left;");

System.out.println("path: " + image);

stage.setScene(scene);

エラー:

Caused by: java.lang.NullPointerException
    at javafxapplication4.JavaFXApplication4.start(JavaFXApplication4.java:381)
    at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:811)
    at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:295)
    at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:261)
    at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:258)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:258)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)

壁紙の場所

ここに画像の説明を入力

4

2 に答える 2

1

コードにバグがあります。そのはず

String image = JavaFXApplication4.class.getResource("wallpaper4.jpg").toExternalForm();
于 2013-09-06T11:23:09.360 に答える
0

「root」は StackPane として宣言する必要があります。これを試して:

StackPane root = new StackPane()
于 2014-07-10T08:50:11.660 に答える