dilema java DefaultListModel y Jlist

David
19 de Octubre del 2009
he aquí un gran problema :P

el problema es que guardo cada registro del archivo .csv
, lo hace muy bien, pero al llenar el DefaultListModel lo llena 15 veces con el ultimo registro, si alguien pudiera encontrar el mal que acoje a este codigo seria excelente

import java.io.FileNotFoundException;
import java.io.IOException;
import com.csvreader.CsvReader;
import javax.swing.DefaultListModel;
import javax.swing.JList;


public class Archivo {
DefaultListModel modelo = new DefaultListModel();
JList lista = new JList(this.modelo);
String nombre;
int largoRegistro;
String ruta="C:\Documents and Settings\david\Mis documentos\NetBeansProjects\Tarea2Java";
CsvReader lector;
String []registro;

public Archivo(String nombre, int largoRegistro){

this.nombre=nombre;
this.largoRegistro=largoRegistro;
this.registro=new String[this.largoRegistro];
}

public DefaultListModel leer() throws FileNotFoundException{
//limpio la lista
this.modelo.clear();
this.lector = new CsvReader(this.ruta+"\"+this.nombre,';');// si no pongo ,';' el get 0 me toma todo el registro
try{

while (this.lector.readRecord()){
//lleno el string
for(int i=0;i<this.largoRegistro;i++){
this.registro[i]=this.lector.get(i);
System.out.println(this.registro[i]);
System.out.println(this.lector.get(i));
}
//PROBLEMA
this.modelo.addElement(this.registro);
System.out.println("jerjer "+modelo.getSize());
}

}catch(IOException e){
e.printStackTrace();
}
this.lector.close();

String []arreglo={"",""};
System.out.println("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM");
for( int i=0;i<modelo.getSize();i++ ){
//PROBLEMA
arreglo=(String[]) modelo.getElementAt(i);
System.out.println(arreglo[0]+" "+arreglo[1]);
}


return this.modelo;
}

}

axel
19 de Octubre del 2009
Te falta hacer new al insertar y por lo tanto insertas siempre el mismo objeto.

Si usas eclipse PDM y lady4j revisan ese tipo de fallos.