我正在尝试通过读取 csv 文件并调用 setDataVector 来更新我的 JTable,但在 String[] 列表(读取 CSV 文件的结果)和 Vector 之间的转换时遇到一些问题对象的数量(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();
}
}
});
setDataVector 应该接受以下参数:( vector dataVector、 vector 列标识符)。
问题是我不断收到错误:[Ljava.lang.String;无法转换为 java.util.Vector。是否有一些简单的功能可以修复这个程序?还是我需要自己构建一些东西?
我知道 vector 已经贬值,但考虑到我的程序范围有限(只是一个小家庭作业),我认为使用它们会更容易。
感谢您的建议!
最佳答案
数据应该是二维数组
Vector<Vector<Object>> data
而不是Vector<Object> data
在这种情况下,您必须在
util List myEntries
内循环并创建一个新的Vector<Object> row
使用
AbstractTableModel
用于基于util.List
的底层数组,阅读 Oracle tutorial How to use Table ,这里有一些 SSCCE 形式的优秀代码示例
关于java - 通过setDataVector函数更新JTable数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20562526/