Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/08/2011, 15:07
Avatar de calichecal
calichecal
 
Fecha de Ingreso: junio-2009
Ubicación: Colombia
Mensajes: 288
Antigüedad: 14 años, 10 meses
Puntos: 12
Tabular en JList

hola a todos tengo un JLIst el cual lleno con un código similar a este:


Código HTML:
while(itera.hasNext()){ 

   Registro aux=(Registro)(itera.next());

         modelo.addElement("<html><font color=blue>"+(ind++)+"</font>.     <b>Nombre:</b> <i>"+tabular(aux.getNombre())+
                 "</i> <b>Código:</b> <i>"+tabular(aux.getCodigo())+
                 "</i> <b>Porcentaje obtenido:</b>  "+formato.format(aux.getPorcentaje())+
                 "</i> <b>Nota(1 a 5):</b>  "+formato.format(aux.getNota)+"</html>");


}
donde modelo es un objeto DefaultListModel asociado al JLIst para facilitar las tareas de agregación , eliminación...etc...

el método tabular que aparece allí: tiene la tarea de ajustar todos los string a un mismo tamaño de 16 caracteres, pues siendo todos los String iguales puedo tener una lista con los nombres y demas alineados, así:

Código:
nombre: juan          porcentaje  52%   nota 3.4 
nombre: mariano       porcentaje  65%   nota 4.2
nombre: maria         porcentaje  20%   nota 2.0

y el metodo tabular es este:

Código HTML:
    public String tabular(String nombre){
        
        String r=nombre+"<font color=white>";
        int nCaracteres=nombre.length();
        
        for(int i=nCaracteres;i<16;i++){
            
            r+=".";
            
        }
        r+="</font>";
        
        return r;
    }

inicialmente me puse a concatenarle espacios en blanco por delante del string, pero no los reconocia el JLIst, así que invente concatenarle puntos y luego corresponder el color de los dichos puntos con el blanco de fondo del JList, todo iva de maravilla, pero al probarlo me doy cuenta de que no es posible obtener alineado todos los nombres pues hay unos caracteres que utilizan menos espacio ejemplo(nombres inventados):

Amberto
Milenai

ambos tienen 7 caracteres pero Milenai ocupa menos espacio, así que a pesar de que mi método funciona bien la lista queda así:


Código:
nombre: juan         porcentaje  52%  nota 3.4 
nombre: Amberto        porcentaje  65%  nota 4.2
nombre: Milenai     porcentaje  20%  nota 2.0
pues casí lo logro :(,,

ideas

¿Como logro alinear en un jList?

¿mi método tabular fue un fracaso?

ojala que alguien sepa como

a que si son capacez :P

saludoss...
__________________
Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad. -Einstein-

Última edición por calichecal; 08/08/2011 a las 15:13