首页 > 解决方案 > 如何将txt文件导入JTable并根据文件的行数使第一列自动递增

问题描述

我正在做一些java编码,我必须将一个文件导入一个有4列的Jtable,而我的文件有3列(用空格分隔,我需要每行的第一列自动递增,这是我的代码:

try {
    FileReader  files = new FileReader(file);
    BufferedReader buf = new BufferedReader(files);                
    String line = null; 
    String tokens[] = null;
    while ((line = buf.readLine()) != null) { 
        tokens = line.split("\\p{javaWhitespace}+");
        //System.out.println( Arrays.toString( tokens ));
        model.addRow(tokens);
    } 
}   

这就是我得到的:
图片

这是我的文件:
文件

标签: javaswingfilejtable

解决方案


只需在数据前面添加一个额外的令牌。这是使用向量而不是数组最简单的方法。向量中的第一项是您的行索引,下一项是从您的标记数组中填充的。例如:

try {
    FileReader  files = new FileReader(file);
    BufferedReader buf = new BufferedReader(files);                
    String line = null; 
    String tokens[] = null;
    int count = 0;
    while ((line = buf.readLine()) != null) { 
        tokens = line.split("\\p{javaWhitespace}+");
        Vector<Object> row = new Vector<>();
        row.add(count);
        count++;
        for (String text: tokens) {
            row.add(text);
        }
        model.addRow(row); // add the Vector, not the tokens array
    } 
}

还有其他方法,包括扩展表模型以便它自动执行此操作,并且这些可能需要根据您的需要完成 - 例如,如果在运行期间删除或添加一行,则重新编号的行该程序?如果是这样,逻辑需要表模型中。


推荐阅读