List<MyProduct> myProducts = getMyProducts();//create an arraylist;
Vector dataVector = new Vector(myProducts);
Vector columnVector = new Vector(myColNames); //Just a list of string headers
setDataVector(dataVector, columnVector);
setDataVector在DefaultTableModel中调用这段代码,并在突出显示的地方抛出classcast异常,这看起来像一个bug?当它试图将元素转换为向量时,这没有任何意义。
private void justifyRows(int from, int to) {
// Sometimes the DefaultTableModel is subclassed
// instead of the AbstractTableModel by mistake.
// Set the number of rows for the case when getRowCount
// is overridden.
dataVector.setSize(getRowCount());
for (int i = from; i < to; i++) {
if (dataVector.elementAt(i) == null) {
dataVector.setElementAt(new Vector(), i);
}
//java.lang.ClassCastException:
((Vector)dataVector.elementAt(i)).setSize(getColumnCount());
}
}
最佳答案
List<MyProduct> myProducts = getMyProducts(); //create an arraylist;
Vector dataVector = new Vector(myProducts);
这使得
dataVector
的向量MyProduct
而不是向量的向量。我认为那是你的问题。