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:
- Crie o seu modelo da tabela. Caso já tenha, pule para o passo 3;
- Siga o meu link na assinatura para descobrir como fazer o seu próprio modelo;
- 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”;
[code]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();
}
}
}[/code]
5. Ao chamar o seu JDialog, faça assim:
[code]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()));
}
}
}
[/code]
Espero ter ajudado,
fique com Deus!