2012-11-19 103 views
1

感謝您的閱讀。我有一個問題,我似乎無法找到一種方法來使用.txt文件中的數據填充jTable。使用txt文件填充jTable

我正在使用Netbeans的GUI構建器。諸如insertRow,addRow等的方法未被確認。在Google上進行了一些研究之後,我嘗試過使用模型,但似乎也不奏效。或者,也許我沒有做對。

最後,我已經找到了:

public class InsertFileDataToJTable extends AbstractTableModel { 
Vector data; 
Vector columns; 

public InsertFileDataToJTable() { 
     String line; 
     data = new Vector(); 
     columns = new Vector(); 
     try { 
       FileInputStream fis = new FileInputStream("monfichier.txt"); 
       BufferedReader br = new BufferedReader(new InputStreamReader(fis)); 
       StringTokenizer st1 = new StringTokenizer(br.readLine(), " "); 
       while (st1.hasMoreTokens()) 
         columns.addElement(st1.nextToken()); 
       while ((line = br.readLine()) != null) { 
         StringTokenizer st2 = new StringTokenizer(line, " "); 
         while (st2.hasMoreTokens()) 
           data.addElement(st2.nextToken()); 
       } 
       br.close(); 
     } catch (Exception e) { 
       e.printStackTrace(); 
     } 
} 

public int getRowCount() { 
     return data.size()/getColumnCount(); 
} 

public int getColumnCount() { 
     return columns.size(); 
} 

public Object getValueAt(int rowIndex, int columnIndex) { 
     return (String) data.elementAt((rowIndex * getColumnCount()) 
         + columnIndex); 
} 

這就是我得到:i.imgur.com/7xqUD.jpg

現在困擾我的唯一的事情就是列的名字,我該如何改變它們?

回答

2

包括一個getColumnName功能...

public String getColumnName(int col) 

它將被稱爲傳入列數。根據這個返回一個列名。可以創建一個列名稱數組和「return columnName [col]」,根據列等生成一個case語句。

有關您可以執行的所有操作的更多詳細信息,請參閱Javadocs for AbstractTableModel。

+0

是的,它的工作原理。謝謝。 –