Java - agregar item en jlist

   
Vista:

agregar item en jlist

Publicado por eduardo (49 intervenciones) el 05/07/2009 19:56:20
hola:

en la clase List de awt habia un metodo add para agregar un item desde (por ejemplo) un textfield .
en Jlist por lo que veo ,la unica manera que tengo es usar un vector de strings cuando defino la lista (al menos no encontre otra) porque el metodo add no esta definido para usar un String como parametro.
necesitaria saber cual es el equivalente de add para String en JList.

desde ya gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:agregar item en jlist

Publicado por James (207 intervenciones) el 06/07/2009 16:57:57
Pues tienes razo, la idea de Swing es que todo se maneja a nivel de objetos de esta forma un String es un objeto(de la clase String), las ventajas son infinitas, y por lo que veo, no encuetro el xq la necesidad de que sea String, en todo caso siempre esta el metodo "toString()" que se le aplica a un objeto, ese es el valor que se mostrara visible en la lista, es mas en un Jlist no existe un metodo add ni siquiera para objetos, lo mas practico es que definas un modelo propio para trabajar tu lista, y entonces podras definir los metodos que reuieras y el tipo de dato con el cual trabajar, Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:agregar item en jlist

Publicado por eduardo (49 intervenciones) el 06/07/2009 19:49:11
graccias por la respuesta.
pero ,disculpa:como podria definir un modelo propio o que clase tengo que revisar paar poder aplicar eso?

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:agregar item en jlist

Publicado por James (207 intervenciones) el 06/07/2009 23:31:26
Deverias hacer una clase que extienda de DefaultListModel o de AbstractListModel, yo personalmente prefiero trabajar con abstract, pues todo el control esta de mi lado y puedo definir una clase mas adecuad a mis requerimientos, como ejemplo seria esta clase

public class MyListModel extends AbstractListModel{
//Donde se almacenaran los datos de la lista
ArrayList<String> myListData;

public MyListModel() {
this.myListData = new ArrayList<String>();
}

public int getSize() {
return myListData.size();
}

public Object getElementAt(int index) {
return myListData.get(index);
}
//Aca de fini a modo de ejemplo dos metodos simples, se peuden definir los metodos que mas se ajusten a tu proyecto
//Este metodo lo defino yo, agrega un elemento en una determinada posicion de la lista(se se puede)
public boolean setValueAt(String value, int index){
if(index < 0 | index >= this.getSize())
return false;
this.myListData.set(index, value);
return true;
}

//este metodo tambien lo defini, agrega un elemento al final de la lista
public void addValue(String value){
this.myListData.add(value);
}

}

luego solo estableces un objeto de este modelo a tu lista, algo asi

MyListModel modelo = new MyListModel();
lista.setModel(modelo);

como ejemplo sirve pero faltarian metodos de eliminacion, o insercion en grupo, o los que necesites tambien tocaria actualizar lal ista despues de insertar o eliminar, para eso existen los metodos fireContentChanged(...), fireIntervalAdded(...), fireIntervalRemoved(...), los que deberias llamar desde el mismo modelo, pero eso ya te lo dejo a ti seguro haciendo un modelo a medida logras trabajar mejor en tu proyecto, Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar