Java 将文件数据读入JTable

Java 将文件数据读入JTable,java,swing,file,file-io,jtable,Java,Swing,File,File Io,Jtable,我想从.txt文件中读取数据并将其发送到我的表中。 我该怎么办? 我的代码: 请帮忙!谢谢。我刚把你的代码编译好,效果很好。 只需确保您正在进行正确的导入,并且输入文件位于您的路径中。 i、 e(“student.txt”应与java文件位于同一文件夹中) JavaDoc这样说是关于StringTokenizer 标记器使用默认分隔符集,即“\t\n\r\f”:空格字符、制表符、换行符、回车符和换行符 因此,请确保输入文件中的字段使用这些字段,就像使用默认分隔符一样 我使用以下导入使其工作 im

我想从.txt文件中读取数据并将其发送到我的表中。 我该怎么办? 我的代码:


请帮忙!谢谢。

我刚把你的代码编译好,效果很好。 只需确保您正在进行正确的导入,并且输入文件位于您的路径中。 i、 e(“student.txt”应与java文件位于同一文件夹中)

JavaDoc这样说是关于StringTokenizer

标记器使用默认分隔符集,即“\t\n\r\f”:空格字符、制表符、换行符、回车符和换行符

因此,请确保输入文件中的字段使用这些字段,就像使用默认分隔符一样

我使用以下导入使其工作

import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
import java.io.*;


public class InsertFileDataToJTable extends AbstractTableModel {
 // the rest of the code is same as yours

}

我刚把你的代码编译好,效果很好。 只需确保您正在进行正确的导入,并且输入文件位于您的路径中。 i、 e(“student.txt”应与java文件位于同一文件夹中)

JavaDoc这样说是关于StringTokenizer

标记器使用默认分隔符集,即“\t\n\r\f”:空格字符、制表符、换行符、回车符和换行符

因此,请确保输入文件中的字段使用这些字段,就像使用默认分隔符一样

我使用以下导入使其工作

import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
import java.io.*;


public class InsertFileDataToJTable extends AbstractTableModel {
 // the rest of the code is same as yours

}

代码中出现了什么问题

我运行了你的代码,它工作得很好,除了列名是默认的A,B,。。。因为您没有从模型中检索列名的方法。您已经实现了getValueAt()方法,并且工作正常。只需为上述类中的列名添加新方法:

public String getColumnName(int i){
    return (String)columns.get(i);
}

如果您有任何其他问题,请让我们知道。我只使用了2列运行,所以没有完全测试getValueAt()方法。

代码中有什么问题

我运行了你的代码,它工作得很好,除了列名是默认的A,B,。。。因为您没有从模型中检索列名的方法。您已经实现了getValueAt()方法,并且工作正常。只需为上述类中的列名添加新方法:

public String getColumnName(int i){
    return (String)columns.get(i);
}

如果您有任何其他问题,请让我们知道。我只使用了2列来运行,因此没有完全测试getValueAt()方法。

我想让您了解代码中的一个重要问题。您已经在表模型中写入了所有内容。表模型类应仅包含表所需的模型,如
列名
列计数
行计数
列类
getValueAt
setValueAt
方法。请为UI创建一个单独的类并创建一个表,然后创建一个模型并将模型设置为表。(如果代码刚刚好,请将UI和逻辑分开。)

此代码的问题是,如果实现
AbstractTableModel
,则必须实现表的所有必需方法,如设置列名、设置值、获取值等。在此代码中不设置列名


如果您有特定的理由使用
AbstractTableModel
,那么就可以了。否则请使用
DefaultTableModel
几乎所有必需的方法都已实现。

我想让您了解代码中的一个重要问题。您已经在表模型中写入了所有内容。表模型类应仅包含表所需的模型,如
列名
列计数
行计数
列类
getValueAt
setValueAt
方法。请为UI创建一个单独的类并创建一个表,然后创建一个模型并将模型设置为表。(如果代码刚刚好,请将UI和逻辑分开。)

此代码的问题是,如果实现
AbstractTableModel
,则必须实现表的所有必需方法,如设置列名、设置值、获取值等。在此代码中不设置列名

如果您有特定的理由使用
AbstractTableModel
,那么就可以了。Else使用
DefaultTableModel
几乎所有必需的方法都已实现。

我应该做什么?:向我们解释问题是什么,并阅读切线:另请参阅。我应该做什么?:向我们解释问题是什么,并阅读切线:另请参阅。