2013-09-28 35 views
-2

我有一個非常簡單的代碼:JAVA:添加字符串(file.getAbsolutePath()),以表(表)

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

你有初始化列表都和的fileList指向列表對象? –

回答

2

我沒有看到任何地方fileList(或list)被實例化這樣的:

fileList = new ArrayList<String>(); 

提示:你應該認真看一下Java泛型,並宣佈你的名單如下:

private List<String> list, fileList; 

使其成爲僅可包含String對象的輸入List

+0

如果我這樣做,那麼我將不得不將fileList更改爲ArrayList 。我需要我的名單是動態的。另外,我沒有這樣做與其他名單做得很好。做到這一點:私人清單清單中,fileList也會產生錯誤。 – jennygii

0

private List list, fileList; //這裏是你需要初始化列表的問題。

下面

private List<String> list new ArrayList<String>(); 

private List<String> fileList new ArrayList<String>(); 
+1

它產生一個錯誤,說**類型列表不是通用的;它不能用參數 **進行參數化 – jennygii

0

我所做的是替換代碼:

private List list; 
    private ArrayList<String> fileList = new ArrayList<String>();