Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/10/2012, 12:41
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
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