我正在尝试通过读取csv文件并调用setDataVector来更新我的JTable,但是在List of String [] s(在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 columnIdentifiers)。
问题是我一直收到错误:[Ljava.lang.String;无法强制转换为java.util.Vector。是否有一些简单的功能可以修复这个程序?或者我需要自己构建一些东西吗?
我知道矢量是折旧的,但鉴于我的程序范围有限(只是一个小作业),我认为使用它们会更容易。
感谢您的建议!
答案 0 :(得分:1)
数据应该是二维数组Vector<Vector<Object>> data
而不是Vector<Object> data
在这种情况下,您必须在util List myEntries
内循环并创建新的Vector<Object> row
根据AbstractTableModel
util.List
覆盖数组
阅读Oracle tutorial How to use Table,SSCCE表格中的一些优秀代码示例在这里