Botão em jTable (AbstractTableModel)

Bom dia, tudo bem ?

Venho aqui mais uma vez pedir uma luz hehe. Eu fiz um pequeno exemplo com 4 classes, são elas:

ButtonColumn.java -> Classe que cria o botão
TabelaModelTeste.java -> Classe AbstractTableModel
TesteBean.java -> Bean set e get (cod e codOrig)
jdialogTest.java -> Gui do aplicativo

O problema é o seguinte, ele cria o botão na jtable (pelo menos visualmente - aparece um botao arredondado) mas quando eu clico no botão ele não faz nada, simplesmente não executa os métodos getTableCellEditorComponent, getCellEditorValue e actionPerformed da classe ButtonColumn.

Fazendo uma analogia parece que estou clicando em uma imagem

Segue os códigos

TabelaModelTeste.java

public class TabelaModelTeste extends AbstractTableModel{
    
    private final int COL_COD = 0;
    private final int COL_CODORIG = 1;
    private final int COL_ACAO = 2;
    
    private ArrayList<TesteBean> teste;
    private String[] colunas = new String[] { "Cod", "Cod Orig", ""};
    
    public TabelaModelTeste(){
        teste = new ArrayList<TesteBean>();
    }
    
    public TabelaModelTeste(ArrayList<TesteBean> lista){
        this();
        teste.addAll(lista);
    }

    @Override
    public int getRowCount() {
        return teste.size();
    }

    @Override
    public int getColumnCount() {
        return colunas.length;
    }
    
    @Override
    public String getColumnName(int column) {
        return colunas[column];
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        TesteBean v = (TesteBean) teste.get(rowIndex);
        
        switch (columnIndex) {
            case COL_COD:
                return v.getCod();
            case COL_CODORIG:
                return v.getCodOrig();            
            case COL_ACAO:
                return "Apagar";
            default:        
                throw new IndexOutOfBoundsException("columnIndex out of bounds");
        }
    }
}

jdialogTest.java

public class jdialogTest extends javax.swing.JDialog {

    ArrayList<TesteBean> lista;
    private TabelaModelTeste model;
    
    public jdialogTest(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        
        lista = new ArrayList<TesteBean>();
        
        lista.add(new TesteBean(1,2));
        lista.add(new TesteBean(1,2));
        lista.add(new TesteBean(4,1));
        
        model = new TabelaModelTeste(lista);
        jTableTeste.setModel(model);
        
        ButtonColumn buttonColumn = new ButtonColumn(jTableTeste, 2);
    }

    // RETIREI O CÓDIGO AQUI POR SER PADRÃO DO JDIALOG 

    // private void initComponents() ...
    // public static void main(String args[]) ...
}

ButtonColumn.java

public class ButtonColumn extends AbstractCellEditor  
     implements TableCellRenderer, TableCellEditor, ActionListener  
{  
     JTable table;  
     JButton renderButton;  
     JButton editButton;  
     String text;  
  
     public ButtonColumn(JTable table, int column)
     {
         super();
         this.table = table;
         renderButton = new JButton();
  
         editButton = new JButton();
         editButton.setFocusPainted( false );
         editButton.addActionListener( this );
  
         TableColumnModel columnModel = table.getColumnModel();
         columnModel.getColumn(column).setCellRenderer( this );
         columnModel.getColumn(column).setCellEditor( this );
     }
  
     public Component getTableCellRendererComponent(
         JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
     {
         if (hasFocus)
         {
             renderButton.setForeground(table.getForeground());  
             renderButton.setBackground(UIManager.getColor("Button.background"));  
         }
         else if (isSelected)  
         {
             renderButton.setForeground(table.getSelectionForeground());  
              renderButton.setBackground(table.getSelectionBackground());  
         }
         else  
         {
             renderButton.setForeground(table.getForeground());  
             renderButton.setBackground(UIManager.getColor("Button.background"));  
         }
  
         renderButton.setText( (value == null) ? "" : value.toString() );
         return renderButton;
     }  
  
    @Override
     public Component getTableCellEditorComponent(
         JTable table, Object value, boolean isSelected, int row, int column)
     {
         text = (value == null) ? "" : value.toString();
         editButton.setText( text );
         return editButton;
     }
   
    @Override
     public Object getCellEditorValue()
     {
         return text;
     }
  
    @Override
     public void actionPerformed(ActionEvent e)
     {  
         fireEditingStopped();  
         System.out.println( e.getActionCommand() + " : " + table.getSelectedRow());  
     }  
}

TesteBean.java

public class TesteBean {
        
    private int cod;
    private int codOrig;
    
    public TesteBean() {    
    }
    
    public TesteBean(int cod, int codOrig) {
        this.setCod(cod);
        this.setCodOrig(codOrig);
    }

    public int getCod() {
        return cod;
    }

    public void setCod(int cod) {
        this.cod = cod;
    }

    public int getCodOrig() {
        return codOrig;
    }

    public void setCodOrig(int codOrig) {
        this.codOrig = codOrig;
    }            
}

Agradeço desde ja.

Abraço