Erro com Jtable

tenho praticado criando um projeto pequeno porem me deparei com algo q não estou conseguindo resolver.
esta e uma função que recebe os valores e joga em uma class com getter e setter(Uma tela no caso)

public void addSet() {

    ModelAuxiliar set = new ModelAuxiliar();

    set.setId(txtIdProd.getText());
    set.setProduto(txtNomeProd.getText());
    set.setQuantidade(txtQuantidade.getText());
    set.setPreco(txtPrecoProd.getText());

    CadVenda ven = new CadVenda(this);

    if (JOptionPane.showConfirmDialog(this,
            "Deseja incluir: ",
            "Incluir",
            JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
        this.dispose();
        ven.incluir(set);
        
    }

}

depois em outra tela onde tenho a jtable recebo a class.
ela imprime todas as propriedades
porem nao estou conseguindo adicionar a Jtable.

public void incluir(ModelAuxiliar get) {

    System.out.println(get.getId());  
    System.out.println(get.getProduto());
    System.out.println(get.getPreco());
    System.out.println(get.getQuantidade());
   
    this.setVisible(true);
    tableModel.addRow(get);
}

desculpem tentei varias coisas porem nada faz funcionar :slight_smile:

Como vc está implementando esse tableModel?

Estou no serviço porém ela está extendendo AbstractTableModel

O AbstractTableModel não possui o método addRow, ou foi você quem implementou, ou está estendendo outra classe…
Posta a implementação do seu TableModel.

public class TbleModel extends AbstractTableModel {
    private List<ModelAuxiliar> dados = new ArrayList<>();
    private String[] colunas = {"id", "produto", "quantidade", "valor"};
    @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).getId();
            case 1:
                return dados.get(linha).getProduto();
            case 2:
                return dados.get(linha).getQuantidade();
            case 3:
                return dados.get(linha).getPreco();
        }
        return null;
    }
    public void addRow(ModelAuxiliar aux) {
        this.dados.add(aux);
        this.fireTableDataChanged();    
    }
}

essa e minha AbstractTableModel

1 curtida

A tableModel parece certa. Como vc está criando a JTable junto com esse tableModel?

TbleModel tableModel = new TbleModel();

public CadVenda(Menu menu) throws SQLException {
    initComponents();
    this.menu = menu;
    Ultimo();
    tbProdi.setModel(tableModel);
}

no “construtor” se nao estou enganado kkk

conferindo o codigo notei q estava dando “CadVenda ven = new CadVenda(this);” de novo
na função addSet() sendo q ele ja avia sino iniciado no construtor da tela

public AddProduto(CadVenda venda) {

    this.venda = venda;
    initComponents();

}
1 curtida

acho que por conta do programa estar ficando grande estou me perdendo fácil kkkkkk

A jenela do CadVenda é modal? Se não for, a linha depois do setVisible vai rodar imediatamente, não só quando a janela for fechada.