Problemas remoção de linha JTable contendo JButton

E ai Pessoal!

Estou com um problema que já tá me deixando grilado!!!

Seguinte. Eu precisei de uma tabela que contivesse algumas colunas com JButton, outra com JComobox. Para isso eu criei um render e um editor para cada tipo desejado e atribui na coluna seu respectivo tipo. Isso funcionou de boa. Desta forma eu pude criar um objeto controller para ficar ouvindo notificações de eventos dos testes em execução e alterar as informações de tela de maneira simples. Contudo, quando eu clico no botão “excluir” linha. A linha é removida, mas caso haja alguma linha abaixo dela na tabela, o botão de remover linha não é removido, ficando flutuando na JTable, como mostra o print anexo.

Estou removendo a linha da seguinte maneira:

public void removeTestCase(int tcID) {
        for (int i = 0; i < tableModel.getRowCount(); i++){
            if (new Integer(((JLabel)tableModel.getValueAt(i, 0)).getText()) == tcID){                
                tableModel.removeRow(i);
                tableModel.fireTableDataChanged(); //
                searchResultTable.repaint();           //
                testCases.remove(tcID);
                break;
            }
        }        
    }

As linhas com “//” na frente, mostram as tentativas de que a JTable fosse atualizada.

O mais interessante é que seu eu removo TODOS as linhas da tabela e a reconstruo, os botão fantasmas continuam… :x

Já estou sem bala na agulha para resolver esse problema… :?

To precisando de ajuda :slight_smile:


Cara fiquei quase a tarde inteira agora penando com isso…hoje: dia 1 de dezembro de 2009
Tava na mesma situacão hahah foi tenso…
O problema é parecido mas n sei o resto do seu código entao vo falar como era o meu problema
Acho que você não deve ter mais a dauvida, mas deixo a solucão pois é simples e me custou muito tempo.

Quando você remove um elemtno da Tabela você diminuiu o tamanho em um na tabela, dai voce ja está no próximo elemento e você ta incrementano dinovo, dai ta pulando um elemento…
era isso o problema comigo …n sei como ta o seu removeRow()

bom até mais!