
Como poner checbox en tabla?? Ya que en la tabla muestra 1 y 0
Publicado por Alexis (1 intervención) el 27/11/2016 20:09:19
Saludos , llevo 2 dias tratando de solucionar este error , tengo un campo estado , lo uso con un checkbox , al marcar el check , me inserta 1 en la tabla y si esta desmarcado me inserta 0 , como hago para que me muestre tambien el dibujito del check en la tabla ? intente usando esta clase Clase_CellRender
y lo traigo en mi metodo cargar
ejecute mi formulario y me salio el siguiente error :
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean
at Clases.Clase_CellRender.getTableCellRendererComponent(Clase_CellRender.java:32)
at javax.swing.JTable.prepareRenderer(JTable.java:5723)
Alguien me puede ayudar por favor? solo quiero que el checkbox este la tabla en vez del 1 y 0.Gracias
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Clase_CellRender extends JCheckBox implements TableCellRenderer{
private final JComponent component = new JCheckBox();
/** Constructor de clase */
public Clase_CellRender() {
setOpaque(true);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
//Color de fondo de la celda
( (JCheckBox) component).setBackground( new Color(167,218,251) );//[167,218,251]
//obtiene valor boolean y coloca valor en el JCheckBox
boolean b = ((Boolean) value).booleanValue();
( (JCheckBox) component).setSelected( b );
return ( (JCheckBox) component);
}
}
y lo traigo en mi metodo cargar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void cargar(String buscar) {
try {
DefaultTableModel modelo;
fitems func = new fitems();
modelo = func.mostrar(buscar);
jtable.setModel(modelo);
JCheckBox check = new JCheckBox();
jtable.getColumnModel().getColumn(3).setCellRenderer(new Clase_CellRender()); //
lbltotalregistros.setText("Total Registros " + Integer.toString(func.totalregistros));
} catch (Exception e) {
JOptionPane.showConfirmDialog(rootPane, e);
}
javax.swing.table.DefaultTableModel m;
m = (javax.swing.table.DefaultTableModel) jtable.getModel();
int [] anchos = {150,350,150,200,100,0,250,50,0,250,0,250,0,250,0,250,0,250};
for (int i = 0; i< m.getColumnCount(); i++){
jtable.getColumnModel().getColumn(i).setPreferredWidth(anchos[i]);
}
ejecute mi formulario y me salio el siguiente error :
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean
at Clases.Clase_CellRender.getTableCellRendererComponent(Clase_CellRender.java:32)
at javax.swing.JTable.prepareRenderer(JTable.java:5723)
Alguien me puede ayudar por favor? solo quiero que el checkbox este la tabla en vez del 1 y 0.Gracias
Valora esta pregunta


0