2013-12-13 99 views
0

我試圖通過讀取csv文件並調用setDataVector來更新我的JTable,但在String [] s(讀取結果CSV文件)和一個對象矢量(對於setDataVector方法是必需的)。我的嘗試如下:通過setDataVector函數更新JTable數據

jbtLoad.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       try { 
        CSVReader reader = new CSVReader(new FileReader("csv.csv")); 
        List myEntries = reader.readAll();//List is filled with String[]'s 

        Vector<Object> data = new Vector(myEntries); 
        data.remove(0); 

        Vector<Object> column_names = new Vector(); 
        column_names.add(myEntries.get(0)); 

        tableModel.setDataVector(data, column_names); //the error occurs here 
       } 
       catch (Exception ex) { 
       ex.printStackTrace(); 
       } 
      } 
     }); 

setDataVector應該接受以下參數:(Vector dataVector,Vector columnIdentifiers)。

問題是我不斷收到一個錯誤:[Ljava.lang.String;不能轉換爲java.util.Vector。有沒有可以修復這個程序的簡單功能?或者我需要自己創建一些東西?

我知道向量是折舊的,但考慮到我的程序範圍有限(只是一個小的家庭作業),我認爲它會更容易使用它們。

感謝您的建議!

+0

提供setDataVector API的實現 – Sach

回答

1
  • 數據應該是二維數組的Vector<Vector<Object>> data代替Vector<Object> data

  • 在這種情況下

    ,你必須循環內util List myEntries並創建一個基於util.List的襯墊數組的新Vector<Object> row

  • 使用AbstractTableModel

  • 閱讀Oracle tutorial How to use Table,幾個咕d代碼實例在這裏是