Olá pessoal,
Já pesquisei pela internet e não encontrei nada que resolva meu problema.
É o seguinte, passarei as classes e depois vou explicar o que quero entender:
EnderecoView.java:
public class EnderecoView extends AbstractInternalFrame
{
private static final long serialVersionUID = -281703272794664127L;
private JTextField ruaTF;
private JTextField numeroTF;
private JTextField complementoTF;
private JTextField bairroTF;
private JTextField cidadeTF;
private JTextField estadoTF;
private JTextField paisTF;
private Endereco endereco;
private PossuiEndereco possuiEndereco;
public EnderecoView(PossuiEndereco possuiEndereco)
{
super("Endereco", true, true, true, true);
setSize(505, 340);
setLocation(10, 10);
setVisible(true);
this.possuiEndereco = possuiEndereco;
if(possuiEndereco != null && possuiEndereco.getEndereco() != null)
{
EnderecoBC.getInstance().retrieve(possuiEndereco.getEndereco().getId());
}
}
protected void initializeFields()
{
//inicializa as JLabels e JTextFields
}
@Override
protected void initializeButtons()
{
ActionListener acaoSalvarBT = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
endereco = new Endereco();
endereco.setRua(ruaTF.getText());
endereco.setNumero(Integer.parseInt(numeroTF.getText()));
endereco.setComplemento(complementoTF.getText());
endereco.setBairro(bairroTF.getText());
endereco.setCidade(cidadeTF.getText());
endereco.setEstado(estadoTF.getText());
endereco.setPais(paisTF.getText());
// Aqui deve ocorrer o retorno da instancia Endereco.
JOptionPane.showMessageDialog(painelFields, "Endereco Salvo.");
dispose();
}
};
JButton salvarBT = new JButton("Salvar");
salvarBT.addActionListener(acaoSalvarBT);
painelButtons.add(salvarBT);
}
}
FuncionarioView.java:
public class FuncionarioView extends AbstractInternalFrame implements PossuiEndereco{
private static final long serialVersionUID = -5921659644429282378L;
private JTextField nomeTF;
private JTextField cpfTF;
private JTextField emailTF;
private JTextField telefoneTF;
private JTextField dataTF;
private JTextField usuarioTF;
private JTextField senhaTF;
private JDesktopPane desktop;
private PossuiEndereco possuiEndereco;
private Endereco endereco;
private EnderecoView frameEndereco;
public FuncionarioView(JDesktopPane desktop) {
super("Funcionario", true, true, true, true);
setSize(515, 350);
setLocation(10, 10);
setVisible(true);
this.desktop = desktop;
}
@Override
public void repintar() {
GridBagConstraints c = new GridBagConstraints();
JLabel enderecoLB = new JLabel("Endereco: "+endereco.toString(), 40);
// Label Endereco
c.gridx = 0;
c.gridy = 12;
c.anchor = GridBagConstraints.NORTHWEST;
painelFields.add(enderecoLB, c);
}
@Override
public Endereco getEndereco() {
return endereco;
}
@Override
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
@Override
protected void initializeFields() {
// inicializa as JLabels e JTextFields
}
@Override
protected void initializeButtons() {
ActionListener acaoEnderecoBT = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frameEndereco = new EnderecoView(possuiEndereco);
desktop.add(frameEndereco);
frameEndereco.toFront();
}
};
ActionListener acaoSalvarBT = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Funcionario funcionario = new Funcionario(getEndereco());
JOptionPane.showInternalMessageDialog(painelFields,
endereco.getRua());
dispose();
}
};
JButton enderecoBT = new JButton("Endereco");
JButton salvarBT = new JButton("Salvar");
enderecoBT.addActionListener(acaoEnderecoBT);
salvarBT.addActionListener(acaoSalvarBT);
painelButtons.add(enderecoBT);
painelButtons.add(salvarBT);
}
}
E a PossuiEndereco.java:
public interface PossuiEndereco extends Repintar{
public Endereco getEndereco();
public void setEndereco(Endereco endereco);
}
O que eu gostaria de saber é como retornar a instancia de Endereco da EnderecoView para a FuncionarioView, quando for apertado o botão salvar da tela EnderecoView.
Segundo a especificação do meu trabalho, deve haver um parametro do tipo PossuiEndereco.
Alguma sugestão?