É o seguinte eu tenho um Jframe principal e um JDialog para incluir alguns dados, e o mesmo JDialog para alterar os dados já cadastrados o problema
é que quando eu chamo o JDialog para alterar os dados ele não puxa os dados nos JTextField, eu uso uma tabela para pegar os dados.
Posta seu código aí!
Meu botão alterar
IncluirContato IncluirContato = null;
try {
if (contatoSelecionado == null) {
JOptionPane.showMessageDialog(this, "Nenhum contato selecionado");
} else {
IncluirContato = new IncluirContato(this, true);
IncluirContato.setModal(true);
IncluirContato.setVisible(true);
IncluirContato.txtNome.setText(contatoSelecionado.getNome());
IncluirContato.txtEmpresa.setText(contatoSelecionado.getEmpresa());
IncluirContato.txtFone1.setText(contatoSelecionado.getFone1());
IncluirContato.txtFone2.setText(contatoSelecionado.getFone2());
IncluirContato.txtFone3.setText(contatoSelecionado.getFone3());
IncluirContato.txtEmail.setText(contatoSelecionado.getEmail());
}
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Nenhum contato selecionado");
}
Tenta colocar o setVisible depois que o JFrame estiver totalmente pronto, já vi muitos pequenos bugs por conta do setVisible antes de tudo.
IncluirContato = new IncluirContato(this, true);
IncluirContato.setModal(true);
IncluirContato.txtNome.setText(contatoSelecionado.getNome());
IncluirContato.txtEmpresa.setText(contatoSelecionado.getEmpresa());
IncluirContato.txtFone1.setText(contatoSelecionado.getFone1());
IncluirContato.txtFone2.setText(contatoSelecionado.getFone2());
IncluirContato.txtFone3.setText(contatoSelecionado.getFone3());
IncluirContato.txtEmail.setText(contatoSelecionado.getEmail());
IncluirContato.setVisible(true);
No caso do JDialogs modais, o que ocorre é que o setVisible(true) irá parar seu código até que o JDialog feche. Portanto, os comandos seguintes não serão executados e o dialog não será preenchido.
Esse é outro motivo para, por exemplo, abolir o uso de setVisible no construtor. A solução é só usar o que o colega falou: deixar o setVisible por último.
PS: Movi seu tópico para o fórum de interface gráfica. Dúvidas de Swing não pertencem ao fórum de Java Avançado.
Obrigado gente deu certo