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