Foros del Web » Programación para mayores de 30 ;) » Java »

JCheckBox en JTable

Estas en el tema de JCheckBox en JTable en el foro de Java en Foros del Web. Hola: Necesito meter una columna con JCheckBox en una JTable y tengo bastantes dudas. He buscado por google pero de momento no he visto un ...
  #1 (permalink)  
Antiguo 29/08/2008, 00:33
 
Fecha de Ingreso: febrero-2008
Mensajes: 65
Antigüedad: 16 años, 2 meses
Puntos: 0
JCheckBox en JTable

Hola:

Necesito meter una columna con JCheckBox en una JTable y tengo bastantes dudas. He buscado por google pero de momento no he visto un ejemplo con todo el código que me pueda valer.

¿Alguno tiene algún ejemplo que me pueda dejar?

Desde ya muchas gracias
  #2 (permalink)  
Antiguo 29/08/2008, 02:12
 
Fecha de Ingreso: diciembre-2006
Mensajes: 127
Antigüedad: 17 años, 5 meses
Puntos: 1
Información Respuesta: JCheckBox en JTable

You looked at the page Laura_morgar ....http://ji.ehu.es/LMAlonso/SW/java/Bi...#editrenderapi

check this code:

Código PHP:

import java
.awt.Color;
import java.awt.Component;
 
import javax.swing.AbstractCellEditor;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableCellEditor;
 
/**
 * @author cwickesser
 * Created on Sep 29, 2004
 */
public class TableTest extends JPanel {
 
    public 
TableTest() {
        
init();
    }
    
    private 
void init() {
        
// test data
        
Object[] columns = new Object[] {"Select""Name"};
        
Object[][] data = new Object[2][2];
        
data[0][0] = new Boolean(true);
        
data[0][1] = "John";
        
data[1][0] = new Boolean(false);
        
data[1][1] = "Bill";
        
        
MyTableModel model = new MyTableModel(datacolumns);
        
JTable table = new JTable(model);
        
        
table.getColumnModel().getColumn(0).setCellEditor(new CheckBoxCellEditor());
        
        
JScrollPane tableScroller = new JScrollPane(table);
        
        
add(tableScroller);
    }
    
    private class 
MyTableModel extends AbstractTableModel {
        
        private 
Object[][] data;
        private 
Object[] columns;
        
        public 
MyTableModel(Object[][] dataObject[] columns) {
            
this.data data;
            
this.columns columns;
        }
        
        public Class 
getColumnClass(int columnIndex) {
            return 
data[0][columnIndex].getClass();
        }
        public 
int getColumnCount() {
            return 
columns.length;
        }
        public 
int getRowCount() {
            return 
data.length;
        }
        public 
Object getValueAt(int rowIndexint columnIndex) {
            return 
data[rowIndex][columnIndex];
        }
        
        
// only allow the first column to be editable, this is the column
        // with our checkboxes
        
public boolean isCellEditable(int rowIndexint columnIndex) {
            return (
columnIndex == 0);
        }
    }
    
    private class 
CheckBoxCellEditor extends AbstractCellEditor implements TableCellEditor {
        protected 
JCheckBox checkBox;
        
        public 
CheckBoxCellEditor() {
            
checkBox = new JCheckBox();
            
checkBox.setHorizontalAlignment(SwingConstants.CENTER);
            
checkBox.setBackgroundColor.white);
        }
        
        public 
Component getTableCellEditorComponent(
                
JTable table
                
Object value
                
boolean isSelected
                
int row
                
int column) {
 
            
checkBox.setSelected(((Boolean) value).booleanValue());
            
            
Component c table.getDefaultRenderer(String.class).getTableCellRendererComponent(tablevalueisSelectedfalserowcolumn);
            if (
!= null) {
                
checkBox.setBackground(c.getBackground());
            }
            
            return 
checkBox;
        }
        public 
Object getCellEditorValue() {
            return 
Boolean.valueOf(checkBox.isSelected());
        }
    }
    
    public static 
void main(String[] args) {
        
JFrame f = new JFrame();
        
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        
TableTest test = new TableTest();
        
        
f.getContentPane().add(test);
        
f.setSize(300300);
        
f.show();
    }


Greetings!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:13.