2012-11-19 82 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

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