[Ajuda] - AbstractTableModel

Fala galera,

Preciso de uma ajuda, tenho 2 tabelas e precisava que ao selecionar algum item na primeira tabela os dados da segunda tabela fosse alterado conforme o item selecionado na primeira.

Por exemplo: a primeira tabela possui nomes de produtos (feijão,arroz,macarrão) e a segunda contém a marca, valor, peso etc. Precisava que ao selecionar feijão na tabela 1 ele mostre as informações apenas do feijão na tabela 2.

Eu criei um método chamado “pesquisa” e não está dando certo.

Se poderem me ajudar a ajustar esse método ou fazer de alguma forma melhor.

public class Mercado extends AbstractTableModel{
private List<Produtos> dados = new ArrayList<>();
private String[] colunas = {"Marca","Valor","Peso"};

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

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

@Override
public int getColumnCount() {
    return colunas.length;
}

@Override
public Object getValueAt(int linha, int coluna) {
    
    switch(coluna){
        case 0:
            return dados.get(linha).getMarca();
        case 1:
            return dados.get(linha).getValor();
        case 2:
            return dados.get(linha).getPeso();    
        case 3:
            return dados.get(linha).getName();    
    }
    
    return null;   
}

@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
    return true;
}


@Override
public void setValueAt(Object valor, int linha, int coluna) {
    
    switch (coluna) {
        case 0:
            dados.get(linha).setMarca((String) valor);
            break;
        case 1:
            dados.get(linha).setValor((int) valor);
            break;
        case 2:
            dados.get(linha).setPeso((int) valor);
            break;
       case 3:
         dados.get(linha).setName((String) valor);
      
            
    }
        this.fireTableRowsUpdated(linha, linha);
    
}

 

public void addRow(Produto p){
    this.dados.add(p);
    this.fireTableDataChanged();
}


public void removeRow(int linha){
    this.dados.remove(linha);
    this.fireTableRowsDeleted(linha, linha);
}



public void addPesquisa(String name)  {
           
    List<]Produtos> dados2 = new ArrayList<>();
    dados2.clear();
    dados2.addAll(dados);
    this.fireTableDataChanged();
    
    int size = getRowCount();
    this.dados.clear();
    this.fireTableRowsDeleted(0, size);
    
    for (Produtos t : dados2) {
        if (t.getName().equals(name)) {
            this.dados.add(t);
            this.fireTableDataChanged();
        }
    }

    this.dados.clear();
    this.dados.addAll(dados2);
}