Erro na Atualização do Jtable

0 respostas
welington2502

Boa noite pessoal.
Estou trabalhando em um projeto para a feira da faculdade e estou emperrado na Jtable.(TableModel)

Vou dizer o que funciona nela. (Atualização de Itens e exlusão);

Agora o que não funciona é a adição de itens. coloquei uma imagem do que acontece. no banco de dados ele grava perfeitamente mas graficamente fica errado, só aparece o nome do produto e qdo vc fecha a janela e abre novamente ele atualiza perfeitamente.

segue abaixo os metodos e as classes.

desde já abradeço

public class TipoProduto {

    private Integer idTipoProduto;
    private String tipoProduto;

    public TipoProduto() {
    }

    public TipoProduto(Integer idTipoProduto, String tipoProduto) {
        this.idTipoProduto = idTipoProduto;
        this.tipoProduto = tipoProduto;
    }

    public Integer getIdTipoproduto() {
        return idTipoProduto;
    }

    public void setIdTipoproduto(Integer idTipoproduto) {
        this.idTipoProduto = idTipoproduto;
    }

    public String getTipoProduto() {
        return tipoProduto;
    }

    public void setTipoProduto(String tipoProduto) {
        tipoProduto = tipoProduto.toUpperCase();
        this.tipoProduto = tipoProduto;
    }

    @Override
    public String toString() {
        return this.tipoProduto;
    }
}
public void setAdiciona() {

        tipoProduto.setTipoProduto(tfTipo.getText());
        new TipoProdutoDAO().setAdiciona(tipoProduto);
        tableModel.setAdd(tipoProduto);

        limparCampos();
    }
public class TipoProdutoTableModel extends AbstractTableModel {

    private static final int COL_CODIGO = 0;
    private static final int COL_TIPOPRODUTO = 1;
   
    private List<TipoProduto> listaProdutos;

    //Esse é um construtor, que recebe a nossa lista de Objetos
    public TipoProdutoTableModel(List<TipoProduto> listaProdutos) {
        this.listaProdutos = new ArrayList<TipoProduto>(listaProdutos);
    }

    @Override
    public int getRowCount() {
        //Quantas linhas tem sua tabela? Uma para cada item da lista.    
        return listaProdutos.size();
    }

    @Override
    public int getColumnCount() {
        //Quantas colunas tem a tabela? Nesse exemplo, só 5.    
        return 2;
    }

    @Override
    public String getColumnName(int column) {
        //Qual é o nome das nossas colunas?    
        if (column == COL_CODIGO) {
            return "CÓDIGO";
        }
        if (column == COL_TIPOPRODUTO) {
            return "TIPO DE PRODUTO";
        }

        return ""; //Nunca deve ocorrer    
    }

    @Override
    public Object getValueAt(int row, int column) {
        //Precisamos retornar o valor da coluna column e da linha row.
        TipoProduto tipoProduto = listaProdutos.get(row);
        if (column == COL_CODIGO) {
            return tipoProduto.getIdTipoproduto();
        } else if (column == COL_TIPOPRODUTO) {
            return tipoProduto.getTipoProduto();
        }

        return ""; //Nunca deve ocorrer    
    }

    @Override
    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {

        TipoProduto tipoProduto = listaProdutos.get(rowIndex);
        if (columnIndex == COL_CODIGO) {
            tipoProduto.setIdTipoproduto(rowIndex);
        } else if (columnIndex == COL_TIPOPRODUTO) {
            tipoProduto.setTipoProduto(aValue.toString());
        }
    }

    @Override
    public Class<?> getColumnClass(int columnIndex) {
        //Qual a classe das nossas colunas? Como estamos exibindo texto, é string.    
        return Integer.class;
    }

    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {

        //Indicamos se a célula da rowIndex e da columnIndex é editável. Nossa tabela toda é.    

        //        if (columnIndex == COL_CODIGO) {  
        //            return false;  
        //        } else {  
        //            return true;  
        //        }   
        return false; // Aqui todas as celulas nao serão editaveis  
    }

    public TipoProduto get(int row) {
        return listaProdutos.get(row);

    }

    public void setRemove(int row) {
        //Remove da lista  
        listaProdutos.remove(row);
        //Avisa a tabela que foi removido  
//        fireTableRowsDeleted(row, row);
        fireTableDataChanged();
    }

    public void setAdd(TipoProduto tipoProduto) {
        //Adiciona na lista  
        this.listaProdutos.add(tipoProduto);
        //Avisa a tabela que um novo produto foi inserido.        
        fireTableRowsInserted(this.listaProdutos.size() - 1, this.listaProdutos.size() - 1);

    }    
}


Criado 24 de abril de 2012
Respostas 0
Participantes 1