无法在JavaFx中加载图像

时间:2017-06-23 14:25:37

标签: java javafx

我想在JavaFX中加载图像和视频。我的代码的相关部分在下面给出了视频加载部分没问题,但图像加载部分不工作。你能给我解决方案吗?

if (serialvalue == 1) {
    String infoquery = "select * from information where " + "categoryname like " + "'%" + selectedcategory + "%'";
    try {
        filename = getFilePathForCorrespodingSerial(infoquery, serialvalue);
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println("You path for video : " + filename);
    System.out.println("my choiche");
    //File path = new File("C:\\Users\\User\\Downloads\\RGACD_Directory\\arosh.jpg");
    java.io.FileInputStream fis = null;
    try {
        fis = new FileInputStream("C:\\Users\\User\\Downloads\\RGACD_Directory\\arosh.jpg");
    } catch (Exception e) {
        e.printStackTrace();
    }
    im = new ImageView(new Image(fis));
    String newpath = "C:\\Users\\User\\Downloads\\RGACD_Directory\\" + filename;
    me1 = new Media(new File(newpath).toURI().toString());
    mp1 = new MediaPlayer(me1);
    mv1.setMediaPlayer(mp1);
    mp1.setAutoPlay(true);
} 

3 个答案:

答案 0 :(得分:2)

这适合我。

final ImageView im = new ImageView(
            new Image(new File("C:/Users/User/Downloads/RGACD_Directory/arosh.jpg").toURI().toString()));

答案 1 :(得分:1)

你能告诉我们堆栈跟踪吗? 试试这个,将图像文件放在java文件所在的包中,并将代码写为:

ImageView icon = new ImageView(new Image(getClass().getResourceAsStream("/main/view/images/inbox.png")));

主包就在src目录之后。

就我而言,我的java文件位于视图包中。另请注意,在窗口中我们使用' \\'作为分隔符,在linux中我们使用反斜杠(/)。

答案 2 :(得分:1)

最后这对我有用

@FXML ImageView im; im.setImage(new Image("file:///C:\\Users\\User\\Downloads\\arosh.png");