我有一个非常简单的代码:
private final JFileChooser chooser;
private List list, fileList;
//some codes
int returnVal = chooser.showDialog(CountdownTimer.this, "Select Files");
if(returnVal==JFileChooser.APPROVE_OPTION) {
File[] file = chooser.getSelectedFiles();
System.out.println("Selected files:");
for(int i=0; i<file.length; i++) {
list.add(file[i].getName());
fileList.add(file[i].getAbsolutePath());
System.out.println("list["+i+"] "+file[i].getName());
System.out.println("fileList["+i+"] "+file[i].getAbsolutePath());
}
}
else System.out.println("No selection.");
我需要两个清单。第一个将用于查看(和删除)目的而另一个 用于压缩所有选定的文件。在zip文件中,我将需要每个文件的位置和名称。但由于某种原因,该行
fileList.add(file[i].getAbsolutePath());
生成错误“线程中的异常”AWT-EventQueue-0“java.lang.NullPointerException”而行
list.add(file[i].getName());
做得很好。我使用GUI的列表列表和列表文件列表作为压缩代码。
答案 0 :(得分:2)
我没有看到任何地方fileList
(或list
)被实例化如下:
fileList = new ArrayList<String>();
提示:您应该认真看待Java泛型并声明您的列表:
private List<String> list, fileList;
使其成为仅包含List
个对象的类型String
。
答案 1 :(得分:0)
private List list, fileList;
//这是初始化List所需的问题。
用下面的代码替换
private List<String> list new ArrayList<String>();
private List<String> fileList new ArrayList<String>();
答案 2 :(得分:0)
我做的是:
private List list;
private ArrayList<String> fileList = new ArrayList<String>();