CheckBox en una celda
Hola,
quiero crear una tabla en que las celdas de una columna sean checkbox's...como puedo hacerlo?
Muchas gracias y SALU2
quiero crear una tabla en que las celdas de una columna sean checkbox's...como puedo hacerlo?
Muchas gracias y SALU2
Estás hablando deun JTable supongo.
Basta que los valores de esa columna sean de la clase Boolean, aparecen automáticamente como checkbox.
Saludos!
Basta que los valores de esa columna sean de la clase Boolean, aparecen automáticamente como checkbox.
Saludos!
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?
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!
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!