java - 通过setDataVector函数更新JTable数据

标签 java swing list vector jtable

我正在尝试通过读取 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/

相关文章:

java - 面板上文本字段的大小和位置

list - 从字符串创建列表

带有列表的 Python 格式打印

java - 来自 JAVA 的 Mongo Replicaset 配置

java - JList 不显示 JScrollpane 或更改大小

java - 在 Elasticsearch 中将数字字段索引为 int 和 string

java - 表格单元格编辑器问题

c++ - 无法删除 C++ 中的列表元素

java - JPA eclipselink 绕过持久化上下文

Java Android 滚动到底部并获取新数据后总是转到第一个数据/页面(顶部回收 View )