Tengo un problema al querer leer los datos que me da el checkbox en mi jtable, estoy usando una clase para sobre escribir la del CellEdito y asi poder asignar un checkbox en una columna aparte tambien uso un render para poder mostar el componente. Lleno la tabla normalmente con todos sus datos y sus check box. PERO cuando quiero leer los datos que he ingresado tengo problemas al momento de leer los datos no estoy muy seguro de como hacerlo. He intentado con jtable.getmodel().getValueAt(row,col) pero cuando lo inteno asi me deja de tomar un dato es decir si tengo 5 casillas maarcas con el chulito , cuando leo los datos con un for solo me da 4 casillas. Intente con el cellEditoValue pero cuando una casilla es true todas las demas me las da true
Este es mi Render:
Código:
Este es el CellEditor:public class Clase_CellRender extends JCheckBox implements TableCellRenderer{ private JComponent component = new JCheckBox(); public Clase_CellRender() { setOpaque(true); } @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { ( (JCheckBox) component).setBackground( new Color(255,255,255) ); boolean b = ((Boolean) value); ( (JCheckBox) component).setSelected( b ); return ( (JCheckBox) component); } }
Código:
Este codigo lo saque de la web , y no he podido hacer la captura de los datos. Agradeceria su ayuda public class Clase_CellEditor extends DefaultCellEditor implements TableCellRenderer{ private final JComponent component = new JCheckBox(); private boolean value = false; public Clase_CellEditor() { super( new JCheckBox() ); } @Override public Object getCellEditorValue() { return ((JCheckBox)component).isSelected(); } @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { ( (JCheckBox) component).setBackground( new Color(200,200,0) ); boolean b = ((Boolean) value).booleanValue(); ( (JCheckBox) component).setSelected( b ); return ( (JCheckBox) component); } @Override public boolean stopCellEditing() { value = ((Boolean)getCellEditorValue()).booleanValue() ; ((JCheckBox)component).setSelected( value ); return super.stopCellEditing(); } @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (value == null) return null; return ( (JCheckBox) component ); } }