E o que acontecerá quando o usuário apertar OK? Precisamos carregar a instância cliente com os valores que foram digitados nos componentes JTextField. Assim modificamos o ActionListener do botão OK da seguinte forma:
butOK.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
setVisible(false);
dispose();
getCliente().setNome(campoNome.getText());
getCliente().setEndereco(campoEnd.getText());
getCliente().setFone(campoTel.getText());
getCliente().setCidade(campoCid.getText());
getCliente().setCep(campoCep.getText());
result = true;
}
});
Enfim, precisamos devolver a instância de cliente preenchida para a CadastroCliente. Para isto, implementamos o método abaixo em FormCadastro:
public Cliente getCliente() { return cliente; }
Agora, a classe CadastroCliente precisa ser corrigida para trabalhar com o novo construtor de FormCadastro e com o método getCliente. Teremos que corrigir então o código relacionado com as opções Novo e Editar do menu:
newAction.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
FormCadastro form = new FormCadastro(frm, new Cliente("<Novo cliente>","","","",""));
form.setVisible(true);
if (form.getResult()) {
listModel.addElement(form.getCliente());
}
}
});
edAction.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int sel = listBox.getSelectedIndex();
Cliente cliente = (Cliente) listModel.elementAt(sel);
FormCadastro form = new FormCadastro(frm, cliente);
form.setVisible(true);
if (form.getResult()) {
listModel.setElementAt(form.getCliente(), sel);
}
}
});