Java 为什么表中只显示第一个元素 包ferramenta.database.transaction.command; 导入ferramenta.database.transaction.*; 导入ferramenta.database.transaction.d

Java 为什么表中只显示第一个元素 包ferramenta.database.transaction.command; 导入ferramenta.database.transaction.*; 导入ferramenta.database.transaction.d,java,database,swing,vector,jtable,Java,Database,Swing,Vector,Jtable,为什么表中只显示第一个元素 包ferramenta.database.transaction.command; 导入ferramenta.database.transaction.*; 导入ferramenta.database.transaction.dao.*; 导入javax.swing.table.DefaultTableModel; 导入java.util.*; /** *@作者 * */ 公共类RicercaProdotto实现Ricerca{ private ProdottoDAO

为什么表中只显示第一个元素
包ferramenta.database.transaction.command;
导入ferramenta.database.transaction.*;
导入ferramenta.database.transaction.dao.*;
导入javax.swing.table.DefaultTableModel;
导入java.util.*;
/**
*@作者
*
*/
公共类RicercaProdotto实现Ricerca{
private ProdottoDAO prodotto=新的ProdottoDAOImpl();
私有向量myData=新向量();
受保护向量vector1=新向量();
受保护向量vector2=新向量();
@凌驾

public void search(如果我放置Vector myData=new Vector(),则列表
);在for循环内部它是有效的
-你已经知道答案了为什么如果我把for循环放在外部我会遇到这种情况?对我来说很奇怪,如果你只创建了一个
myData
的实例并不断向其中添加数据,然后多次将同一实例添加到
tableModel
,那么你所有的行都包含相同的数据。好的,我修复了吗如果我把Vector myData=newvector()放进去,谢谢你;在for循环内部它是有效的
-你已经知道答案了为什么如果我把for循环放在外部我会遇到这种情况?对我来说很奇怪,如果你只创建了一个
myData
的实例并不断向其中添加数据,然后多次将同一实例添加到
tableModel
,那么你所有的行都包含相同的数据。好的,我修复了吗d谢谢你
package ferramenta.database.transaction.command;

import ferramenta.database.transaction.*;
import ferramenta.database.transaction.dao.*;
import javax.swing.table.DefaultTableModel;
import java.util.*;

/**
 * @author
 *
 */

public class RicercaProdotto implements Ricerca {

    private ProdottoDAO<Prodotto> prodotto = new ProdottoDAOImpl();
    private Vector<String>   myData  = new Vector<String>();
    protected Vector<String> vector1 = new Vector<String>();
    protected Vector<String> vector2 = new Vector<String>();

    @Override
    public void search(List<? extends Prodotto> lista, DefaultTableModel tableModel) {      
        for(Iterator<? extends Prodotto> it = lista.iterator(); it.hasNext();) {
            //Vector<String> myData    = new Vector<String>();
            Prodotto barcode = it.next();
            String valore = barcode.getBarcode();
            List<Prodotto> tmp = prodotto.selectProduct(valore);
            Prodotto p = tmp.get(0);
            System.out.println(myData.size());
            myData.add(p.getBarcode()); 
            myData.add(p.getModello());
            myData.add(p.getDescrizione()); 
            myData.add(Integer.toString(p.getQuantitativo())); 
            myData.add(Double.toString(p.getPrezzo()));
            System.out.println(myData.size());
            tableModel.addRow(myData);
        }
    }

}