Java 用向量填充JTable?

Java 用向量填充JTable?,java,swing,Java,Swing,当我尝试使用向量填充JTable时,出现以下错误 错误: Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Vector at javax.swing.table.DefaultTableModel.justifyRows(DefaultTableModel.java:268) at javax.swin

当我尝试使用向量填充
JTable
时,出现以下错误

错误:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Vector
    at javax.swing.table.DefaultTableModel.justifyRows(DefaultTableModel.java:268)
    at javax.swing.table.DefaultTableModel.setDataVector(DefaultTableModel.java:224)
    at javax.swing.table.DefaultTableModel.<init>(DefaultTableModel.java:159)
    at Package_Sync.Package_sync$Model.<init>(Package_sync.java:50)
    at Package_Sync.Package_sync.packageTable(Package_sync.java:43)
    at Package_Sync.Package_sync.<init>(Package_sync.java:16)
    at Package_Sync.Package_sync$2.run(Package_sync.java:116)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

我的代码有什么问题?

根据例外情况,必须向fileVector添加字符串对象,如下所示:

Vector fileVector = new Vector();
fileVector.add("a string object");
Vector fileVector = new Vector();
fileVector.add(new Vector(Arrays.asList(new String[]{"row1 col1", "row1 col2"})));
fileVector.add(new Vector(Arrays.asList(new String[]{"row2 col1", "row2 col2"})));
这与DefaultTableModel的实现相反,要使用它,需要将Vector对象添加到fileVector中,如下所示:

Vector fileVector = new Vector();
fileVector.add("a string object");
Vector fileVector = new Vector();
fileVector.add(new Vector(Arrays.asList(new String[]{"row1 col1", "row1 col2"})));
fileVector.add(new Vector(Arrays.asList(new String[]{"row2 col1", "row2 col2"})));

干杯

请提供完整的StackTrace您没有显示“fileVector”的创建位置,因此我猜代码不正确。如果我回忆正确,您必须使用对象向量。请参阅表中的javadoc文档。是相当长的,但它会帮助你的第三轮!我也试过那个。但它抛出了同样的异常。在其他项目中也可以接受相同类型的代码。您的
文件向量是哪种类型的
向量?
查看其他构造函数,一个
DefaultTableModel
的构造函数是
(对象[][]数据,字符串[]列名)
。说,(猜测)这个
文件向量
需要是一个
向量
,对吗?编辑:查看源代码,它有一个convertToVector方法,可以将对象[][]转换为向量