我正在尝试创建一个从文件读取图像的小程序。 我在第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)
答案 0 :(得分:1)
第41行唯一可以为null的是imagesList数组。
这意味着第40行的getImages()
返回null。
getImages()
返回file.list()
的结果。
搜索documentation:
返回: 在此抽象路径名表示的目录中命名文件和目录的字符串数组。数组将为空 如果目录为空。如果此抽象路径名确实返回null 不代表目录,或者发生I / O错误。