无法从Java文件读取图像。

时间:2018-11-25 02:51:29

标签: java image swing nullpointerexception embedded-resource

我正在尝试创建一个从文件读取图像的小程序。 我在第25行和第41行上至少遇到2个错误,您能帮我解决这些错误吗? 谢谢

public RoadSafetyAuthority() {
    initComponents();

    //dispaly fisrt image
    showImage(pos); // Line 25
}

int pos = 0;

 public String[] getImages() {

    File file = new File(getClass().getResource("/Images/Information Signs").getFile());
    String[] imagesList = file.list();
    return imagesList;
}   

    //display   the image by index
    public final void showImage(int index) {

        String[] imagesList = getImages();
        String imageName =  imagesList[index]; // Line 41
        ImageIcon icon = new 
           ImageIcon(getClass().getResource("/Images/Information Signs" + imageName));
        Image image = 
icon.getImage().getScaledInstance(jImageLabel.getWidth(),jImageLabel.getHeight(), Image.SCALE_SMOOTH);

    }


private void jBtnNextActionPerformed(java.awt.event.ActionEvent evt) {                                         

    pos = pos - 1;

    if(pos >= getImages().length) {
        pos = getImages().length - 1;
    }

    showImage(pos);
}                                        

private void jBtnPreviousActionPerformed(java.awt.event.ActionEvent evt) {                                             
    pos = pos -1;

    if(pos < 0) {
        pos = 0;
    }

    showImage(pos);
}               

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at assignment1.RoadSafetyAuthority.showImage(RoadSafetyAuthority.java:41)
at assignment1.RoadSafetyAuthority.<init>(RoadSafetyAuthority.java:25)
at assignment1.RoadSafetyAuthority$3.run(RoadSafetyAuthority.java:157)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)

1 个答案:

答案 0 :(得分:1)

第41行唯一可以为null的是imagesList数组。
这意味着第40行的getImages()返回null。
getImages()返回file.list()的结果。
搜索documentation

  

返回:       在此抽象路径名表示的目录中命名文件和目录的字符串数组。数组将为空   如果目录为空。如果此抽象路径名确实返回null   不代表目录,或者发生I / O错误。