Alterar componente em outro formulário

4 respostas
R

Bom dia!

O meu caso é o seguinte, eu tenho um botão ‘Editar’ no meu formulário mãe, quando eu clico neste botão o ActionPerformed abre o formulário filho.
No formulário filho, eu realizo as minhas alterações, e por fim, clico no botão ‘Salvar’, automaticamente a tela é fechada e os valores são alterados no banco de dados. Beleza, mas o meu problema mesmo é agora:

Ao fechar esse formulário filho eu queria alterar os valores na tabela do meu formulário mãe, não encontrei uma forma de fazer isso, pelo menos não uma forma automática, estou tendo que colocar um botão ‘Atualizar’ no meu formulário mãe pra que quando o usuário clicar a grade seja atualizada.

To confuso quanto a questão de nesse caso ser necessário a criação de uma classe, se existe algum evento que já faça isso pra mim…

Se alguém puder me ajudar aí fico muito grato, vou estar passando os códigos aqui pros senhores darem uma analisada.

// FORMULÁRIO MÃE, QUANDO CLICO NO BOTÃO 'EDITAR'  
if (grdContato.getSelectedRow() < 0) {  
      Funcoes.mensagemAviso("Selecione uma linha na grade.");  
  } else {    
      Integer codigo = ((Integer)grdContato.getValueAt(grdContato.getSelectedRow(), 2));  
      clienteContato = clienteContatoDAO.listarPorCodigo(codigo);  
      new FormClienteFisicoAlterarContato(clienteContato,cliente).setVisible(true);     
  }  
  
  
// FORMULÁRIO FILHO, QUANDO JÁ FIZ AS ALTERAÇÕES E AGORA CLICO NO BOTÃO SALVAR  
  
 ClienteContato clienteContato = new ClienteContato();  
    ClienteDAO clienteDAO = new ClienteDAO();  
    Cliente cliente = new Cliente();  
    ClienteContatoDAO clienteContatoDAO = new ClienteContatoDAO();  
      
    clienteContato.setDescricao(edtDescricaoContato.getText());  
    clienteContato.setTipo(Funcoes.getTipoContato(cmbTipo.getSelectedItem().toString()));  
    clienteContato.setCodigo(Integer.parseInt(lblCodigoClienteContato.getText()));  
    cliente = clienteDAO.listarPorCodigo(Integer.parseInt(lblCodigoCliente.getText()));  
    clienteContato.setCliente(cliente);  
    clienteContatoDAO.alterar(clienteContato);  
    this.dispose();

4 Respostas

MarceloMVT

Creio que terá que adicionar uma propriedade, se você estiver utilizando um jdialog , é só clicar com o botão direito e inserir código e criar uma propriedade do tipo ClienteContato;

public void setRegistroatual(ClienteContato registroatual) {
        //atualiza o valor antigo para o valor atual
        //isso depois de adicionar propriedade do código do jdialog
        //o tipo de objeto é nome do bean gerado, tem que clicar pra gerar mais um do tipo booleano e gerar gets e set´s
        ClienteContato oldRecord = this.registroatual;
        this.registroatual = registroatual;
        propertyChangeSupport.firePropertyChange("registroatual", oldRecord, registroatual);
    }

Não sei se ajudei mais acho que esse é um caminho

R

Falae marcelo! Toda opinião é válida, to tentando várias coisas aqui eheueh, quanto ao que disseste, uma dúvida, eu uso NetBeans, essa propriedade que você citou é o mesmo que eu criar um evento ‘PropertyChange’ no meu botão ‘Salvar’ na form filha? ou você se refere a essa propriedade no botão ‘Editar’ na form mãe?

Olha a ideia que eu to tendo, só não to sabendo colocar em prática, seria a seguinte:

  • Crio um label por exemplo: lblModificar (na form mãe)
  • Ao clicar no botão ‘Salvar’ da form filha, eu altero o lblModificar na form mãe (mas não sei realizar essa operação, o que dificulta mais ainda é o fato da tela mãe já estar aberta…)
  • Na form mãe, crio um evento nesse lblModificar pra quando seu valor for modificado, eu realizo os mesmos processos que o botão ‘Atualizar’ faria.

Valeu!

MarceloMVT

da uma olhada nesse vídeo
http://www.youtube.com/watch?v=gDAKUKa2j4c&list=PLq8g2qXsHS6VXyC_3tN2JlfymG7Qe-7LP
ele tem 1 hora mais é muito bom, me ajudou bastante

R

Valeu cara, vou dar uma conferida! Amigo meu me mostrou uma maneira aqui de fazer, logo mais quando funcionar eu posto aqui também pra você já pegar a ideia

Criado 26 de abril de 2013
Ultima resposta 26 de abr. de 2013
Respostas 4
Participantes 2