图像未显示在ImageView中:JavaFX

时间:2017-06-20 17:49:51

标签: javafx

以下是我用来一起查看图片和标题文字的代码:

    try
                    {
                        Scanner scanner = new Scanner( new File("data.txt") );
                        String text = scanner.useDelimiter("ENDOFFILE").next();
                        scanner.close(); // Put this call in a finally block
                        System.out.println(text);
                        String[] data = text.split("\n");
                        for(int i=0;i<data.length;i++)
                        {
                            if(i%2==0)
                            {
                                System.out.println("This is "+data[i]);
                                Image img = new Image(new File(data[i]).toURI().toString(), 100, 0, false, false);
                                ImageView selectedImage = new ImageView();   
                                selectedImage.setImage(img);
                                v.getChildren().addAll(selectedImage);
                            }
                            else
                            {
                                Text t = new Text(data[i]);
                                t.setFont(Font.font("Tahoma", FontWeight.NORMAL, 14));
                                v.getChildren().add(t);
                            }
                        }
                    }
                    catch(Exception E)
                    {
                        E.printStackTrace();
                    }
                    root2.getChildren().add(v);
                    Scene scene = new Scene(root2, 1000, 1000);
                    stage.setScene(scene);
                    stage.show();
}
图像的

data[i]Udiagram.jpg,它与程序位于同一目录中。没有例外,但图像没有显示,它显示为空,只显示如下文字:Text goes here

文件data.txt如下:

UDiagram.jpg
Hit and Run
ENDOFFILE

不显示图像但只显示文字的原因是什么?

1 个答案:

答案 0 :(得分:0)

我相信你只需要将文件和文件夹名称连接到String的开头。

Image image = new Image("file:FOLDER_NAME/imageName.gif");
ImageView imageView = new ImageView();
imageView.setImage(image);

imageView.setFitWidth(100);
imageView.setPreserveRatio(true);
imageView.setSmooth(true);