Dúvida com JDialog

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… :slight_smile:

Quando você quiser implementar o construtor da ‘classe mãe’, você deve fazer assim.

Abraço!