无法在JavaFX中加载图像

我测试了这段代码,以便创建带图像的对话框。

final int xSize = 400; final int ySize = 280; final Color backgroundColor = Color.WHITE; final String text = "SQL Browser"; final String version = "Product Version: 1.0"; final Stage aboutDialog = new Stage(); aboutDialog.initModality(Modality.WINDOW_MODAL); Button closeButton = new Button("Close"); closeButton.setOnAction(new EventHandler() { @Override public void handle(ActionEvent arg0) { aboutDialog.close(); } }); GridPane grid = new GridPane(); grid.setAlignment(Pos.CENTER); grid.setHgap(10); grid.setVgap(10); grid.setPadding(new Insets(25, 25, 25, 25)); Image img = new Image("logo.png"); ImageView imgView = new ImageView(img); grid.add(imgView, 0, 0); grid.add(new Text(text), 0, 1); grid.add(new Text(version), 0, 2); grid.add(closeButton, 14, 18); Scene aboutDialogScene = new Scene(grid, xSize, ySize, backgroundColor); aboutDialog.setScene(aboutDialogScene); aboutDialog.show(); 

我将图像文件放在目录/src 。 但由于某种原因,图像不会显示。 你能帮我改正一下吗?

只需替换此代码:

 Image img = new Image("logo.png"); 

有了这个

 Image img = new Image("file:logo.png"); 

尝试这个:

 img = new Image("/logo.png"); 

如果没有给出指示URL的协议部分(如http:file :),则该文件应该驻留在默认包中。 如果你想让它放在一个不同的包中,请说com.my.images你可以像路径一样添加这些信息:

 img = new Image("/com/my/images/logo.png"); 
 Image img = new Image("file:/logo.png"); 

或路径:

 Image img = new Image("file:c:/logo.png"); 

要么

 File f = new File("c:\\logo.png"); Image img = new Image(f.toURI().toString()); 

也可以用:

 new Image(file:src/logo.png) //root of project 

这个function:

 Image image = new Image(getClass() .getResourceAsStream("ChimpHumanHand.jpg")); 

将映像复制并粘贴到存在源包(NetBeans IDE中的源包)的文件夹中。 然后

 Image image = new Image("a1.jpg"); Image image = new Image("File:a1.jpg"); 

两者都有效。