Buongiorno ragazzi,

Ho un problema stupido ma è da Venerdì che mi ha bloccato.
nella mia JTable ho messo un JCheckBox che permetterà a tempo debito per indicare a chi verrà spedita una mail ed a chi no.

Però dopo averlo inserito si conporta in maniera mutuamente esclusiva ovvero se clicco uno l'altro che era a true sarà messo a falso e ed il primo non viene portato a true deve essere cliccato per una seconda volta. e questo comportamente viene sempre ripetuto

qui diu seguito posto il codice utilizzato

Inizializzazione tabella e cella che conterrà il CheckBox
codice:
public void ModelingTable(Object [][] dati_t, int rows, int columns, final Object[] dLastUpdating){

	    // Creo il modello della tabella e l'applico ad un istanza di Jtable
	    tableModel=null;
	    TableColumn column=null;
	    DefaultTableColumnModel columnModel = new DefaultTableColumnModel();
		for(int i = 0; i < columns; i++) {
			// modello attributi colonna singola
		 	
   		 	tableModel = new DefaultTableModel1(dati_t, tableHeaders1);
   			column = new TableColumn(i, widths1[i]);
   			column.setHeaderValue(tableHeaders1[i]);
   			columnModel.addColumn(column);
   			
		}
	  //  TableModel tableModel = new DefaultTableModel(tableData, tableHeaders);

		jTable1 = new JTable(tableModel, columnModel);
		
		for(int i = 0; i < columns; i++) {
			 jTable1.getColumn("Send_Mail").setCellRenderer(new CheckBoxRenderer());
			jTable1.getColumn("Send_Mail").setCellEditor(new CheckBoxEditor(dati_t));

		}
...segue
Editor per JCheckBox
codice:
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;

public class CheckBoxEditor extends AbstractCellEditor implements TableCellEditor {
	/**
	 * 
	 */
	private static final long serialVersionUID = -7138255194415617187L;
	private JCheckBox jc;
	private Object [][] dati;
	
	public CheckBoxEditor(Object [][] dati) {
		jc = new JCheckBox();
		this.dati=dati;
	}


	public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
		
		System.out.println();
    	if (isSelected) {
      		jc.setForeground(table.getSelectionForeground());
      		jc.setBackground(table.getSelectionBackground());
      		
    	} 
    	else{
      		jc.setForeground(table.getForeground());
      		jc.setBackground(table.getBackground());
    	}
    	return jc;
	}

	public Object getCellEditorValue() {
		return ((JCheckBox)jc).isSelected();
	}
	
	public boolean stopCellEditing() {
    	return super.stopCellEditing();
  	}
 
	protected void fireEditingStopped() {
    	super.fireEditingStopped();
  	}
}
Renderizzazione per il JCheckBox
codice:
import java.awt.Component;
import javax.swing.*;
import javax.swing.table.*;

public class CheckBoxRenderer extends JCheckBox implements TableCellRenderer {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5266080252364837753L;

	public CheckBoxRenderer() {
		setHorizontalAlignment(JLabel.CENTER);
	}

	public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
		if (isSelected) {
			setForeground(table.getSelectionForeground());
			//super.setBackground(table.getSelectionBackground());
			setBackground(table.getSelectionBackground());
		} else {
			setForeground(table.getForeground());
			setBackground(table.getBackground());
		}
		setSelected((value != null && ((Boolean) value).booleanValue()));
		return this;
	}
}


Grazie mille x ogni aiuto/consiglio.
Ciao