Transferência de dados de um Form para outro

1 resposta
rockstom

Estou com o seguinte problema: Eu tenho um JFrame Normal e nele eu tenho um JComboBox para telefones e um botão que chama um JDialog onde eu posso adiconar quantos telefones eu quiser num JTable. Como eu faria para pegar os dados do meu JTable que está no JDialog e lançar no meu JComboBox que está no JFrame?

1 Resposta

Nicolas_Fernandes
rockstom:
Estou com o seguinte problema: Eu tenho um JFrame Normal e nele eu tenho um JComboBox para telefones e um botão que chama um JDialog onde eu posso adiconar quantos telefones eu quiser num JTable. Como eu faria para pegar os dados do meu JTable que está no JDialog e lançar no meu JComboBox que está no JFrame?
Faça os seguintes passos: 1. Crie o seu modelo da tabela. Caso já tenha, pule para o passo 3; 2. Siga o meu link na assinatura para descobrir como fazer o seu próprio modelo; 3. Crie um método em seu TableModel para recuperar os dados da tabela:
public List<Telefone> recuperarTelefones() {
    return telefones;
}
4. No seu JDialog onde há a JTable, crie uma coleção de telefones e um atributo booleano. Você pega os dados da JTable e passa pra ela ao clicar no "OK" ou "Confirmar" do JDialog. Ao clicar em "OK", sete o booleano para true. O inverso para "Cancelar";
public class TelefonesDialog extends JDialog {

    private TelefonesTableModel tablemodelTelefones;
    private List<Telefone> telefones;
    private Boolean confirmou;

    public List<Telefone> getTelefones() { return telefones; }
    public Boolean isConfirmou() { return confirmou; }

    public TelefonesDialog() {

        //...
        JButton buttonConfirmar = new JButton("Confirmar");
        buttonConfirmar.addActionListener(new ConfirmarActionListener());
        //...
        JButton buttonCancelar = new JButton("Cancelar");
        buttonCancelar.addActionListener(new CancelarActionListener());
        //...
    }


    private class ConfirmarActionListener implements ActionListener {
        public void actionPerformed(ActionEvent event) {
            
            this.telefones = tablemodelTelefones.recuperarTelefones();
            confirmou = true;
            dispose();
        }
    }

    private class ConfirmarActionListener implements ActionListener {
        public void actionPerformed(ActionEvent event) {
            confirmou = false;
            dispose();
        }
    }
}
5. Ao chamar o seu JDialog, faça assim:
public class TelefonesFrame extends JFrame {

    public TelefonesFrame() {

        //...
        JButton buttonTelefones = new JButton("...");
        buttonTelefones .addActionListener(new TelefonesDialogActionListener());
    }


    private class TelefonesDialogActionListener implements ActionListener {
        public void actionPerformed(ActionEvent event) {
            
             TelefonesDialog dialogTelefones = new TelefonesDialog();
             dialogTelefones.exibirFormulario();

             // se clicou em OK...
             if (dialogTelefones.isConfirmou()) {

                 // recupera a lista de telefones e adiciona à JComboBox!
                 List<Telefone> telefones = dialogTelefones.getTelefones();
                 comboboxTelefones.setModel(new DefaultComboBoxModel(telefones.toArray()));
             }
        }
    }

Espero ter ajudado,
fique com Deus! :D

Criado 6 de março de 2012
Ultima resposta 6 de mar. de 2012
Respostas 1
Participantes 2