java - 如何将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);
}
}
解决方案
只需在数据前面添加一个额外的令牌。这是使用向量而不是数组最简单的方法。向量中的第一项是您的行索引,下一项是从您的标记数组中填充的。例如:
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
}
}
还有其他方法,包括扩展表模型以便它自动执行此操作,并且这些可能需要根据您的需要完成 - 例如,如果在运行期间删除或添加一行,则重新编号的行该程序?如果是这样,逻辑需要在表模型中。