Bom gente, eu já aprendi a usar o jdialog, funciona tudo bonitinho, a não ser por um problema.
Digamos assim, eu abro um formulário principal e logo em seguida já abro um dialog que efetuará o login no sistema.
Agora eu mudo para qualquer outro aplicativo, que não seja a minha aplicação. Quando eu retorno para ela, apenas o dialog é exibido.
O que eu quero é que o dialog seja exibido juntamente com o formulário que o chamou.
É possível fazer isso?
Obrigado a todos que puderem ajudar!
Instancie seu JDialog assim:
//informa qual é a janela 'parent' do JDialog
JDialog dialog = new JDialog(janelaAnterior);
//define o JDialog como modal
dialog.setModal(true);
dialog.setVisible(true);
Lembrando que o objeto ‘janelaAnterior’ pode ser um JFrame ou um JDialog.
Para saber mais sobre JDialog, dê uma olhada aqui:
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JDialog.html
Espero ter ajudado.
Abraço!
Realmente ajudou muito!
Agora o problema é que eu estou usando o netbeans para criar o sistema… Aí eu criei um dialog separado do form principal… Algo assim:
Login login = new Login();
login.setModal(true);
login.setVisible(true);
Existe alguma maneira de eu conseguir associar o login com o formulário que o chamou?
Grato!
Preste bastante atenção no código que postei e você encontrará essa resposta.
Existe um objeto ‘janelaAnterior’ passado através do construtor da classe JDialog.
Abraço!
Desculpe incomodar tanto!
Então… Eu tentei e não consegui…
É que eu não estou chamando o JDialog diretamente, ao invés disso, eu chamo uma outra classe que usa o “extends JDialog”…
E essa minha classe (chamada login) não aceita receber esse parâmetro da janelaAnterior.
O que você sugere?
Grato!
De qualquer forma você vai ter que fazer como postei acima a única diferença que é você terá que implementar os construtores da classe ‘Login’ dessa maneira:
public class Login extends JDialog{
public Login(Frame parent){
super(parent);
}
public Login(Dialog parent){
super(parent);
}
}
Espero ter ajudado.
Abraço!
Sim! Finalmente consegui entender o código!
Eu realmente não sabia que o “super(parent);” servia para isso… ^^
Boom, crescendo e aprendendo xD
Muito obrigado \o/
Por nada, estamos aqui pra isso mesmo… 
Quando você quiser implementar o construtor da ‘classe mãe’, você deve fazer assim.
Abraço!