1

谢谢阅读。我有一个问题,我似乎找不到使用 .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

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

4

1 回答 1

2

包括一个 getColumnName 函数...

public String getColumnName(int col)

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

有关您可以做的所有事情的更多详细信息,请参阅 AbstractTableModel 的 Javadocs。

于 2012-11-19T20:40:46.777 回答