Java - Dar formato a celda de JTable

   
Vista:

Dar formato a celda de JTable

Publicado por cecilia (73 intervenciones) el 22/06/2009 13:59:56
Hola estoy trabajando con JTable y necesito cambiar el formato a algunas celdas de las tablas, por ejemplo que una celda especifica su texto esté Negrita, como tambien camabiar el color de fondo a esa celda específica-----

Si me pueden ayudar les agradezco.

saludos Cecilia
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:Dar formato a celda de JTable

Publicado por James (207 intervenciones) el 22/06/2009 17:08:49
Debes colocarle un render a esa celda especifica, el render se aplica por columna pero puedes definir tu calse de renderizado y la aplicas por celda, prueba esto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
TableCellRenderer render = new TableCellRenderer() {
            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
                    boolean hasFocus, int row, int column) {
                //Si values es nulo dara problemas de renderizado, por lo tanto se pone como vacio
                JLabel lbl = new JLabel(value == null? "": value.toString());
                if(row == 1)
                    lbl.setHorizontalAlignment(SwingConstants.RIGHT); //alina a laizquierda
                if(row == 2)
                    lbl.setForeground(Color.BLUE);  //fuente azul
                if(column == 1 & row != 2){ //color de fondo
                    lbl.setOpaque(true);
                    lbl.setBackground(Color.YELLOW);
                }
                return lbl;
            }
        };
 
        table.getColumnModel().getColumn(1).setCellRenderer(render);
        table.getColumnModel().getColumn(2).setCellRenderer(render);

asumo tu tabla se llame "table", fijate como se asigna el mismo render a dos columnas y este valida y pones diferentes aspectos a la celda , el render deberia ser una clase mejor definida pero es solo un ejemplo, pueder devolver el componente que desees, pudes poder render de botones, combos, etc, pero si calro para que le funcionamiento este completo deberias tambien asignar un TabeCellEditor, por ejemplo la fila 1 se alinea a la derecha pero al editarla veras como esta a la izquierda, espero te sirva, 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:Dar formato a celda de JTable

Publicado por Ronald Orantes (1 intervención) el 11/09/2013 18:14:05

Sos grande maestro, desde hace ratos que busco esta informacion y no la encontraba. Muy agradecido por tu aporte.
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:Dar formato a celda de JTable

Publicado por James (207 intervenciones) el 22/06/2009 17:08:57
Debes colocarle un render a esa celda especifica, el render se aplica por columna pero puedes definir tu calse de renderizado y la aplicas por celda, prueba esto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
TableCellRenderer render = new TableCellRenderer() {
            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
                    boolean hasFocus, int row, int column) {
                //Si values es nulo dara problemas de renderizado, por lo tanto se pone como vacio
                JLabel lbl = new JLabel(value == null? "": value.toString());
                if(row == 1)
                    lbl.setHorizontalAlignment(SwingConstants.RIGHT); //alina a laizquierda
                if(row == 2)
                    lbl.setForeground(Color.BLUE);  //fuente azul
                if(column == 1 & row != 2){ //color de fondo
                    lbl.setOpaque(true);
                    lbl.setBackground(Color.YELLOW);
                }
                return lbl;
            }
        };
 
        table.getColumnModel().getColumn(1).setCellRenderer(render);
        table.getColumnModel().getColumn(2).setCellRenderer(render);

asumo tu tabla se llame "table", fijate como se asigna el mismo render a dos columnas y este valida y pones diferentes aspectos a la celda , el render deberia ser una clase mejor definida pero es solo un ejemplo, pueder devolver el componente que desees, pudes poder render de botones, combos, etc, pero si calro para que le funcionamiento este completo deberias tambien asignar un TabeCellEditor, por ejemplo la fila 1 se alinea a la derecha pero al editarla veras como esta a la izquierda, espero te sirva, 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:Dar formato a celda de JTable

Publicado por cecilia (73 intervenciones) el 22/06/2009 18:56:05
Gracias!!!me ha funcionado con lo que me has dicho....

Grcias Cecilia
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:Dar formato a celda de JTable

Publicado por Victor (1 intervención) el 27/09/2009 22:02:05
capooooooooooooo... nado buscando esto hace muchisimo...
gracias sos un genio
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:Dar formato a celda de JTable

Publicado por pamela (1 intervención) el 25/04/2013 19:50:28
hola bueno esto ya lo tengo hecho y en mi caso como son varios campos se lo asigne al modelo pero ahora kiero personalizar 2 campos con un formato diferente como haría para personalizar esos dos campos si ya tengo esta clase asignada al modelo?'
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