Java 通过setDataVector函数更新JTable数据

Java 通过setDataVector函数更新JTable数据,java,swing,list,vector,jtable,Java,Swing,List,Vector,Jtable,我试图通过读取csv文件并调用setDataVector来更新我的JTable,但在字符串[]s列表(读取csv文件的结果)和对象向量(setDataVector方法所需)之间的转换方面遇到了一些问题。我的尝试如下: jbtLoad.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try {

我试图通过读取csv文件并调用setDataVector来更新我的JTable,但在字符串[]s列表(读取csv文件的结果)和对象向量(setDataVector方法所需)之间的转换方面遇到了一些问题。我的尝试如下:

 jbtLoad.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
                 try {  
                     CSVReader reader = new CSVReader(new FileReader("csv.csv")); 
                     List myEntries = reader.readAll();//List is filled with String[]'s

                     Vector<Object> data = new Vector(myEntries);
                     data.remove(0);

                     Vector<Object> column_names = new Vector();
                     column_names.add(myEntries.get(0));

                     tableModel.setDataVector(data, column_names); //the error occurs here
                 }
                 catch (Exception ex) {
                 ex.printStackTrace();
                 }
             }
        });
jbtLoad.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
试试{
CSVReader reader=新的CSVReader(新的文件阅读器(“csv.csv”);
List myEntries=reader.readAll();//列表中填充了字符串[]
向量数据=新向量(myEntries);
数据删除(0);
向量列名称=新向量();
column_names.add(myEntries.get(0));
tableModel.setDataVector(数据,列名称);//此处发生错误
}
捕获(例外情况除外){
例如printStackTrace();
}
}
});
setDataVector应该接受以下参数:(Vector dataVector,Vector columnIdentifiers)

问题是我一直遇到一个错误:[Ljava.lang.String;无法转换为java.util.Vector。是否已经有一些简单的函数可以修复此程序?或者我需要自己构建一些东西吗

我知道向量被贬低了,但考虑到我的程序范围有限(只是一个小的家庭作业),我想使用它们会更容易

谢谢你的建议!

  • 数据应该是二维数组
    矢量数据
    ,而不是
    矢量数据

  • 在这种情况下,您必须在
    util List myEntries
    中循环,并创建一个新的
    向量行

  • 基于
    util.List
    ,使用
    AbstractTableModel
    作为基线阵列

  • 下面是一些SSCCE格式的好代码示例


提供setDataVector API的实现