La colonna 0 della tabella è riempita attraverso una query ad un database; ad ogni record è
associato un checkbox. Questi sono i miei renderer ed editor per i checkbox.

codice:
 class RadioButtonRenderer implements TableCellRenderer {  
  public Component getTableCellRendererComponent(JTable table, Object value,  
    boolean isSelected, boolean hasFocus, int row, int column) {  
   if (value==null) return null;  
   return (Component)value;  
  }  
 }  
 
 class RadioButtonEditor extends DefaultCellEditor implements ItemListener {  
  private JRadioButton button;  
  public RadioButtonEditor(JCheckBox checkBox) {  
   super(checkBox);  
  }  
  public Component getTableCellEditorComponent(JTable table, Object value,  
    boolean isSelected, int row, int column) {  
   if (value==null) 
    return null;
   button = (JRadioButton)value;  
   button.addItemListener(this);  
   return (Component)value;  
  }  
  
  public Object getCellEditorValue() { 
   button.removeItemListener(this); 
   return button;  
  }  
  public void itemStateChanged(ItemEvent e) {  
   super.fireEditingStopped();  
  }  
 }
Una volta che l'utente seleziona uno o più checkbox e imposta i valori nei menu a tendina a questi associati, deve cliccare su OK.
Cliccando su OK devo poter capire quali checkbox l'utente ha selezionato e leggere i valori che ha impostato inserendoli in una lista:
List<Integer> lista = new ArrayList<Integer>();.
Questo è il gestore del bottone OK.

codice:
 private class GestoreBottoni implements ActionListener {
  public void actionPerformed(ActionEvent e) {
   if(e.getSource() == ok) {
    for(int i = 1; i < tabella.getRowCount(); i++) { // la riga 0 contiene solo i nomi delle colonne
     boolean selezione = (Boolean)tabella.getValueAt(i, 0);
     if(selezione == true) {
      for(int col = 1; col <= 4; col++) {
       lista.add((Integer)tabella.getValueAt(i, col));
      }
     }
    }
   }