Foros del Web » Programación para mayores de 30 ;) » Java »

orientacion sobre DefaultListCellRenderer en list

Estas en el tema de orientacion sobre DefaultListCellRenderer en list en el foro de Java en Foros del Web. Buen dia , el caso es el siguiente tengo un jlist que debo llenar con los datos de una base de datos mysql pero debo ...
  #1 (permalink)  
Antiguo 05/10/2012, 11:56
Avatar de fahs82  
Fecha de Ingreso: abril-2012
Ubicación: guadalajara
Mensajes: 139
Antigüedad: 12 años, 8 meses
Puntos: 12
Pregunta orientacion sobre DefaultListCellRenderer en list

Buen dia , el caso es el siguiente tengo un jlist que debo llenar con los datos de una base de datos mysql pero debo obtener dos columnas , una con el id y otra con el registro que se muestra , debido a algunas cuestiones debe cargarse en un jlist en lugar de un jtable , he seguido un codigo de ejemplo pero no logro encajar bien en mi formulario pues me marca errores , estoy trabajando en netbeans y el jlist lo agregue arrastrandolo , si es posible hacerlo sin tener que crear una clase independiente pues me parece que si solo lo voy a usar en ese modulo me gustaria me pudieran orientar en lo que esta mal , dejo a continuacion lo que llevo escrito

Código:
public void CargarSeriesDisponibles(){
ConexionMySQL ConexionMysql = new ConexionMySQL();
Connection cn = ConexionMysql.Conectar();
String[] registro = new String[2];
try{

Statement stTallasDisponibles = cn.createStatement();
ResultSet rsTallasDisponibles = stTallasDisponibles.executeQuery("select ID_CORRIDA,SERIE from SERIES_CORRIDAS as t1 left outer join TEMP_ART as t2 on t1.ID_CORRIDA = t2.ID_SERTAL where t1.ID_CORRIDA is null or t2.ID_SERTAL is null order by SERIE");
while(rsTallasDisponibles.next()){
registro [0] = rsTallasDisponibles.getString("ID_CORRIDA");
registro [1] = rsTallasDisponibles.getString("SERIE");
TallasDisponibles  = new JList(registro);
}
TallasDisponibles.setCellRenderer(new DefaultListCellRenderer(){
   public java.awt.Component getListCellRendererComponent()
   {
   return this;
   };

});

}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
agradesco de antemano la atencion y quedo en espera salu2
  #2 (permalink)  
Antiguo 05/10/2012, 12:41
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: orientacion sobre DefaultListCellRenderer en list

Lo de "me marca errores" es un poco extenso. ¿Puedes concretar qué errores?

En cualquier caso, el método getListCellRenderereComponent(), para que sea de utilidad, se debe definir igual que en la clase padre http://docs.oracle.com/javase/1.5.0/...lRenderer.html con todos sus parámetros. Ayuda si le pones la anotación @Override, porque así te cantará un error si te equivocas al escribir el nombre del método, sus parámetros o su return.

Antes del return this, DefaultListCellRenderer hereda de JLabel, debes llamar a this.setText("cadena que tu quieras") y luego devolver this. La "cadena que tu quieras" debes componerla con el parámetro "Object value" que te pasarán al método (mira el enlace de antes). Ese Object que recibirás en realidad será uno de tus registro de la lista (un String[] con dos elementos).

Hay otra forma quizás más sencilla. El render por defecto de la lista llama al método toString() de los elementos de la lista. En vez de pasar como elementos un String[] con dos elementos, puedes hacerte una pequeña clase con dos atributos String (uno para cada campo) y un método String toString() que devuelva el texto que tu quieras ("id texto"). Con eso no te haría falta hacerle nada especial al JList con el DefaultListCelRenderer.

Y finalmente un detalle más, si pretendes dar el aspecto de dos columnas más o menos alineadas en el JList, debes usar una fuente de letra "monoespaciado" http://es.wikipedia.org/wiki/Tipo_de..._monoespaciado de forma que una i latina (i) ocupe el mismo ancho que una eme (m) o que un espacio en blanco ( ). Si no es así, las columnas no quedarán derechas, según el texto que contengan.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Última edición por chuidiang; 05/10/2012 a las 12:54
  #3 (permalink)  
Antiguo 08/10/2012, 11:16
Avatar de fahs82  
Fecha de Ingreso: abril-2012
Ubicación: guadalajara
Mensajes: 139
Antigüedad: 12 años, 8 meses
Puntos: 12
Respuesta: orientacion sobre DefaultListCellRenderer en list

hola que tal gracias por contestar chuidiang , solucione mi problema con la siguiente clase , posteo el codigo para quien se encuentre en una situacion similar a la mia pueda solucionar su problema

Código:
public class TallasDisponiblesArticulo {

   private int id; 
   private String SerieTallas; 
   
public TallasDisponiblesArticulo(int id,String SerieTallas){
this.id = id;
this.SerieTallas = SerieTallas;
}
     
public int getId(){
return id;
}   

public void setId(int id){
this.id = id;
}


public String getserieTallas(){
return SerieTallas;
}

public void setserieTallas(String SerieTallas){
this.SerieTallas = SerieTallas;
}
@Override
public String toString(){
return SerieTallas;
}

}
y con esto cargo al jlist los datos en mi modulo

Código:
public void CargarSeriesDisponibles(){
ConexionMySQL ConexionMysql = new ConexionMySQL();
Connection cn = ConexionMysql.Conectar();
TallasDisponibles = new DefaultListModel();
try{
String SerieTallas;
int id;
Statement stTallasDisponibles = cn.createStatement();
ResultSet rsTallasDisponibles = stTallasDisponibles.executeQuery("select ID_CORRIDA,SERIE from SERIES_CORRIDAS order by SERIE");
while(rsTallasDisponibles.next()){
id = Integer.parseInt(rsTallasDisponibles.getString("ID_CORRIDA"));
SerieTallas = rsTallasDisponibles.getString("SERIE");
System.out.println(SerieTallas + " " + id);
TallasDisponiblesArticulo Tallas = new TallasDisponiblesArticulo(id,SerieTallas);
TallasDisponibles.addElement(Tallas);
}
lstTallasDisp.setModel(TallasDisponibles);
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}

y para ver el ejemplo donde me base y el metodo de como recuperar el resto de la informacion les dejo el link con el ejemplo en el que me base para solucionar mi problema

http://balusoft.wordpress.com/2011/0...un-jlist-java/

salu2 y mil gracias

Etiquetas: defaultlistcellrenderer, jlist, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:58.