[RESOLVIDO] Atualizar Jtable através de um outro Jform

Olá pessoal, sou iniciante em java, estou apenas aprendendo através de curso online, estou fazendo em meu teste uma aplicação, porém me deparei com um problema, e gostaria de uma ajuda, se possível.

Caso:
Fiz um tela de cadastro para cliente com uma tabela com os cliente cadastrado, e fiz uma tela para novo cadastro, agora vem a duvida, como atualizo a tabela que esta em outro form, quando eu clicar para salvar o cliente .

Desculpa, caso não fui muito claro.
Agradeço que ajudar.

Você tem dois forms, beleza, no primeiro vc precisa fazer um método que atualize a sua tabela, exemplo:

 public void setValor(String ve) {
        jLabel2.setText(ve);
}

Pra chamar o segundo formulário:

Form2 form2 = new Form2(this);
form2.setVisible(true);

Agora no seu outro form, que vc vai fazer o update:

private Form1 parent; //Declara o form1 - global

    public Form2(Form1 p) {
        initComponents();
        this.parent = p;
}

Aí pra atualizar você coloca no seu jButton:

 Form1 f1 = (Form1) parent;
 f1.setValor(jTextField1.getText()); //Aqui ele vai pegar o que tá no jTextField1 do form2 e jogar no form1

Sim, é exatamente o código que eu mandei. No seu caso o usuário vai salvar o outro frame vai atualizar.

Você tentou? Deu algum erro?

Quando for enviar algum código, seleciona ele todo e clica no botão </>, assim ele vai formatar o seu código.

Sim tentei, porém não deu nenhum erro, e nem atualizou a tabela.

Mostra como vc colocou no seu código, igual as partes que mandei

 private void carregarProdutos() {
        listaModelProdutos = controllerProdutos.retornarListaProdutosController();
        DefaultTableModel modelo = (DefaultTableModel) jtbprodutos.getModel();
        modelo.setNumRows(0);
        // inserir produtos na tabela
        int cont = listaModelProdutos.size();
        for (int i = 0; i < cont; i++) {
            modelo.addRow(new Object[]{
                listaModelProdutos.get(i).getProid(),
                listaModelProdutos.get(i).getProNome(),
                listaModelProdutos.get(i).getProValorCusto(),
                listaModelProdutos.get(i).getProValor(),
                listaModelProdutos.get(i).getProEstoque()
            });
            {
            }
        }

    }

Este o que fiz para salvar…

Este e para chamar o form 2

    private void jbnovoActionPerformed(java.awt.event.ActionEvent evt) {                                       
            ViewProdutos obj = new ViewProdutos();
            obj.setVisible(true);
        }  

Este foi o que vc passou…

    private ViewListadeProdutos parent;
 public ViewProdutos (ViewListadeProdutos p) {
            initComponents();
            this.parent = p;
    }

Agora no botão…do form2

> private void jbsalvarActionPerformed(java.awt.event.ActionEvent evt) {                                         
>         modelProdutos.setProNome(this.jtfnome.getText());
>         modelProdutos.setProEstoque(Integer.parseInt(this.jtfestoque.getText()));
>         modelProdutos.setProValorCusto(Double.parseDouble(this.jtfvalorcusto.getText()));
>         modelProdutos.setProValor(Double.parseDouble(this.jtfvalordevenda.getText()));
>         if (controllerProdutos.salvarProdutoController(modelProdutos) > 0) {
>             JOptionPane.showMessageDialog(this, "Produto cadastrado com sucesso");     
>             ViewListadeProdutos f1 = (ViewListadeProdutos) parent;
>             f1.setValor(ViewProdutos.getFrames());// aqui não sei o que colocar
>         } else {
>             JOptionPane.showMessageDialog(this, " Erro ao cadastrar o produto");
>         }
> 
>     }

Aqui você tem que colocar this dentro dos parenteses (senão dá erro)
ViewProdutos obj = new ViewProdutos(this);

Aqui seria assim: f1.carregarProdutos();

Abner deu certo, porem com f1.carregarProdutos(); este procedimento, ele deu um erro, dizendo que tinha que tornar o método privado…

Mais agora esta atualizando…

Muito obrigado.

2 curtidas