CheckBox en una celda

XerXi
10 de Mayo del 2004
Hola,
quiero crear una tabla en que las celdas de una columna sean checkbox's...como puedo hacerlo?

Muchas gracias y SALU2

Heihachi
10 de Mayo del 2004
Estás hablando deun JTable supongo.

Basta que los valores de esa columna sean de la clase Boolean, aparecen automáticamente como checkbox.

Saludos!

XerXi
10 de Mayo del 2004
Si es una JTable. Pero he probado de poner la columna de tipo Boolean y no me salen los checkbox... seguro que solo basta con que el tipo sea Boolean, no habra que hacer algo más?

Heihachi
10 de Mayo del 2004
Pues parece que si. hay que asegurarse de que el método getColumnClass(int i) del modelo de la tabla devuelve Boolean para tu columna.

Si has creado tu propio modelo sólo tienes que modificar ese método para que devuelva el valor adecuado para cada columna.

Aquí tienes un miniejemplo bastante cutre donde se ven las columnas con checkBox:

public static void main(String[] args){
JPanel panel;
JDialog dial=new JDialog();
dial.setContentPane(panel = new JPanel());
String[] columns=new String[]{
"col1","col2"
};
Object[][] data = new Object[][]{
{"String 1",Boolean.valueOf(false)},
{"String 2",Boolean.valueOf(true)}
};
//Sobreescribimos el método getColumnClass para este modelo
TableModel model=new DefaultTableModel(data,columns){
public Class getColumnClass(int columnIndex) {
if (columnIndex==0){
return String.class;
}else if (columnIndex==1){
return Boolean.class;
}
return Object.class;
}
};
panel.add(new JTable(model));
dial.setVisible(true);
}

Saludos!