JavaFX 图像/ImageView 空指针异常
JavaFX Image / ImageView NullPointerException
我想在我的程序中加载图像,但遇到异常。
我试图更改文件路径,但它没有任何改变。
然后我将图像从 jpg 格式转换为 png 文件,但没有任何改变
public class Main extends Application {
static int WIDTH = 800;
static int HIGHT = 600;
private Player player;
final static Image back = new Image(Main.class.getResourceAsStream("src/images/background.png").toString());
@Override
public void start(Stage primaryStage) throws Exception{
final ImageView background = new ImageView(back);
final Group root = new Group();
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(root, WIDTH, HIGHT));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
例外情况
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:260)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:122)Caused by: java.lang.NullPointerException
at sample.game.Main.<clinit>(Main.java:21)
... 3 more
尝试使用:
final static Image back = new Image("/images/background.png");
您可以直接使用:
ImageView imageView = new ImageView("/images/background.png");
只需确保图像位于 classpath
或 buildpath
上的文件夹中,随便你怎么称呼它。
我想在我的程序中加载图像,但遇到异常。
我试图更改文件路径,但它没有任何改变。
然后我将图像从 jpg 格式转换为 png 文件,但没有任何改变
public class Main extends Application {
static int WIDTH = 800;
static int HIGHT = 600;
private Player player;
final static Image back = new Image(Main.class.getResourceAsStream("src/images/background.png").toString());
@Override
public void start(Stage primaryStage) throws Exception{
final ImageView background = new ImageView(back);
final Group root = new Group();
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(root, WIDTH, HIGHT));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
例外情况
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:260)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:122)Caused by: java.lang.NullPointerException
at sample.game.Main.<clinit>(Main.java:21)
... 3 more
尝试使用:
final static Image back = new Image("/images/background.png");
您可以直接使用:
ImageView imageView = new ImageView("/images/background.png");
只需确保图像位于 classpath
或 buildpath
上的文件夹中,随便你怎么称呼它。