Como pegar a seleção(evento) de um checkbox?

Eai galera estou com um problema…criei uma Jtable com 2 colunas de checkbox. Gostaria de saber como eu faço para saber qdo o usuario clicou?
E também como eu faço para deixar a seleção apenas em um dos checkboxes por linha?

MyTableModel:

class MyTableModel extends AbstractTableModel implements TableCellRenderer {
	private boolean DEBUG = false;
	private boolean [] colsEdicao;
	private String[] columnNames = null;
	private Object[][] data = null;
    
    
    public MyTableModel(String[] columnNames, Object[][] data, boolean [] edicao)
    {
    	setLinhas(data);
		setColunas(columnNames);
		colsEdicao = edicao;
    }
    {
    	
    }
    
    public int getColumnCount() {
        return columnNames.length;
    }

    public int getRowCount() {
        return data.length;
    }

    public String getColumnName(int col) {
        return columnNames[col];
    }

    public Object getValueAt(int row, int col) {
        return data[row][col];
    }

        public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }

       public boolean isCellEditable(int row, int col) {
            	return colsEdicao[col];
    	}

       public void setValueAt(Object value, int row, int col) {
        if (DEBUG) {
            System.out.println("Setting value at " + row + "," + col
                               + " to " + value
                               + " (an instance of "
                               + value.getClass() + ")");
        }

        data[row][col] = value;
        fireTableCellUpdated(row, col);

        if (DEBUG) {
            System.out.println("New value of data:");
            printDebugData();
        }
    }
    public void setColunas(String[] strings) {columnNames = strings;}
	public void setLinhas(Object[][] dados) {data = dados;}
    private void printDebugData() {
        int numRows = getRowCount();
        int numCols = getColumnCount();

        for (int i=0; i < numRows; i++) {
            System.out.print("    row " + i + ":");
            for (int j=0; j < numCols; j++) {
                System.out.print("  " + data[i][j]);
            }
            System.out.println();
        }
        System.out.println("--------------------------");
    }
    public Component getTableCellRendererComponent(JTable jTable, Object object, boolean b, boolean b0, int i, int i0) 
    { 
    	JCheckBox check=new JCheckBox(); 
    	check.setSelected(new Boolean(data[i][i0].toString())); 
    	return check; 
    } 

}

Criando a JTable:

public JTable createTable() throws Exception
{
	ArrayList lista = new ArrayList();
	final String[] columnNames = {"Documento","Associar","Deletar"}; 
	ArrayList lista2 = new ArrayList();
	boolean [] edicao = {false,true,true};
                 .....
                final Object[][] data = new Object[lista2.size()][tamanhodata];
	int count=0;
	for(int i=0;i<lista2.size();i++)
	{
		
		data[count][0]=lista2.get(i);
		data[count][1]= new Boolean(false);
                                data[count][2]= new Boolean(false);
		count++;
	}
	final MyTableModel m=new MyTableModel(columnNames,data,edicao);
	final JTable jtable = new JTable(m);
    jtable.setPreferredScrollableViewportSize(new Dimension(400, 60));
    initColumnSizes(jtable);
    jtable.addMouseListener(new MouseListener() {   
    public void mouseClicked(MouseEvent er) {
    	    if (er.getClickCount() >= 0) {
    	          if (er.getClickCount() >= 0) 
    	          {
    	              int row = jtable.getSelectedRow();
    	              int col = jtable.getSelectedColumn();
    	              System.out.println((String) jtable.getValueAt(row,0));
    	              System.out.println((String) jtable.getValueAt(row,col));
    	              System.out.println((String) jtable.getValueAt(0,col));
    	          }
    	        }
    	 }
    	
     public void mouseEntered(MouseEvent e) {}   
     public void mouseExited(MouseEvent e) {}   
     public void mousePressed(MouseEvent e){}   
     public void mouseReleased(MouseEvent e){}
	

     });  
    return jtable;
}

Quando eu clico no checkbox… dá o seguinte erro:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.Boolean
	at org.ktex.app.AppAssocia$1.mouseClicked(AppAssocia.java:392)
	at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Cara…

Para saber quando o usuário clicou vc tem que usar o metodo itemStateListener se não me engano…

Já para deixar a seleção em apenas um checkbox por linha não seria melhor usar um RADIO?

Espero ter ajudado…

E como eu implemento este método “itemStateListener” ?
Vlw

Você usa qual IDE… eclipse?

SIM!!

Usa algum plugin para editar visual? Ex.: jigloo

Putz cara…eu mexia com o Netbeans…e lá eu conseguia criar tdo visual…mas agora estou tendo que usar o Eclipse e não tenho mto conhecimento dos Plugins!! Como eu instalo este Plugin? Acho bem melhor trabalhar com o editor gráfico…principalmente p criar applets!!

Blza…já achei http://www.cloudgarden.com/jigloo/ … tem até tutorial!!!

Se liga entao… abre o eclipse e vai em Help->Software Updates->Find and Install

la vai ter URL… bota http://cloudgarden1.com/update-site

dai já era… clica em next até ele instalar…

dai para mexer com o visual digamos que vc queria criar uma simples Jframe… clicará com o botao direito no pacote e selecionar new JFRAME e assim vai…

porem no seu caso vc precisa editar sua classe… clica com o botao direito nela e vai em open with… FORM EDITOR se eu nao me engano…

dai blz ela vai abrir no editor visual…

Feito isso vamos adicionar o metodo itemStateListener:

Com a classe aberta no jigloo visual editor selecione o checkbox a ser editado…
Com a janela maximada do lado direito tera uma guia Events…
Clique na guia Events e selecione itemStateListener e em seguida handler method.

pronto!

ele criará automaticamente um metodo no fim do codigo para você implementar…

qualquer duvida poste aí

Valeu digaum…to instalando aqui!! Vou tentar implementar…qqr coisa eu posto aqui!! Obrigado

Digaum…então, eu nao estou conseguindo incluir este método!!
Existe em meu codigo um método createTable…aonde ele pega dados de um db para criar a primeira coluna, as outras duas colunas da tabela (os checkbox) são estou criando através do new Boolean(false)

data[count][0]=lista2.get(i);   
data[count][1]= new Boolean(false);   
data[count][2]= new Boolean(false);   

onde lista2 contem os dados do db.

Existe um método getTabela() para retornar a tabela

private JTable getTabela(String tipo) throws Exception {
	
	if (tabela == null) 
	{
		if(tipo.equals("ass"))
		{
		//tabela = createJTableAssoc();
			tabela = createTable();
			//jtable.setPreferredSize(new java.awt.Dimension(343, 29));
		}
		else
		{
		if(tipo.equals("des"))
		{
	    tabela = createJTableAssoc();	
		}
		}
	}
	return tabela;
}

E outro para inserir a ScrollBar

private JScrollPane getScrollTabela(String tipo) throws Exception {
	if (scrollTabela == null) {
		scrollTabela = new JScrollPane(getTabela(tipo));
		scrollTabela.setVerticalScrollBarPolicy(
			ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
	}
	return scrollTabela;

}

Quando eu chamo ela no Frame eu dou

.......getScrollTabela(tipo)

e tenho o retorno da tabela. Agora qdo eu visualizo no jigloo eu nao vejo a tabela formada com os campos…entao não posso clicar no checkbox como vc disse e criar a função itemStateListener para ele…

Que estranho cara…

Tenta fazer essa sua janela pelo jigloo sabe… acho que ele nao esta reconhecendo o seu condigo…

ele tem um codigo generico deve ser por isso…

Estou tentando incluir uma tabela com checkbox, mas não aparece o checkbox…vc sabe como eu faço?