使用txt文件填充jTable

时间:2012-11-19 20:26:05

标签: java swing file jtable tablemodel

感谢阅读。我有一个问题,我似乎找不到使用.txt文件中的数据填充jTable的方法。

我正在使用Netbeans的GUI构建器。 insertRow,addRow ...等方法未得到确认。经过对谷歌的一些研究,我尝试过使用模型,但这似乎也没有用。或许我做得不对。

最后,我找到了一些东西:

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

现在唯一困扰我的是列的名称,如何更改它们?

1 个答案:

答案 0 :(得分:2)

包含getColumnName函数...

public String getColumnName(int col)

它将被称为传递列号。基于此返回一个列名。要么创建一个列名数组并“返回columnName [col]”,要有一个基于col的case语句等。

有关您可以执行的所有操作的详细信息,请参阅AbstractTableModel的Javadocs。