我估计错误是出在 actionPerformed 方法中的 tm.rowdata.addElement(tm.data); 你在循环中只是清除了 tm.data 里面的元素,但是 tm.data 对象还是没有变化的!而 addElement 只保存了对 tm.data 的引用,这种情况就很像使用 Vector 保存 String[] 数组对象一样,你试试下面两段代码,它们是不同的片断一:
Vector v = new Vector();
String[] a = new String[2];
int i,counter=0;
for(i=0;i<3;i++)
{
a[0]="" + counter++;
a[1]="" + counter++;
v.add(a);
}
for(i=0;i<3;i++)
{
String[] test=(String[])v.get(i);
System.out.println(test[0]+"***"+test[1]);
}片断二:
Vector v = new Vector();
String[] a = null;
int i,counter=0;
for(i=0;i<3;i++)
{
a = new String[2];
a[0]="" + counter++;
a[1]="" + counter++;
v.add(a);
}
for(i=0;i<3;i++)
{
String[] test=(String[])v.get(i);
System.out.println(test[0]+"***"+test[1]);
}所以,我估计你的程序也是应该把 tm.data 指向新的对象才能适用你的要求了。
Vector v = new Vector();
String[] a = new String[2];
int i,counter=0;
for(i=0;i<3;i++)
{
a[0]="" + counter++;
a[1]="" + counter++;
v.add(a);
}
for(i=0;i<3;i++)
{
String[] test=(String[])v.get(i);
System.out.println(test[0]+"***"+test[1]);
}片断二:
Vector v = new Vector();
String[] a = null;
int i,counter=0;
for(i=0;i<3;i++)
{
a = new String[2];
a[0]="" + counter++;
a[1]="" + counter++;
v.add(a);
}
for(i=0;i<3;i++)
{
String[] test=(String[])v.get(i);
System.out.println(test[0]+"***"+test[1]);
}所以,我估计你的程序也是应该把 tm.data 指向新的对象才能适用你的要求了。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货