JDialog MODAL?

Ae pessoal, o negócio é o seguinte, estou desenvolvendo uma tamplate em java desktop e estou com o seguinte problema?

Tenho uma tela de LOGIN em JDIALOG funcionando redondinho quando rodo o sistema abre a tela de login faz as autenticações e acessa o menu principal, funcionando BLZ.

O problema é o seguinte, na minha tela principal tenho uma opção chamada LOGOFF onde invoca o login novamente, já tentei de tudo para que minha tela principal chame o LOGIN como MODAL mas nada funcionou alguem tem alguma ideia???

Tentativas

Já mudei a propriedade modal para true tentei envocar como setModal(true); depois chamar setVisible(true); mas não funcionou.

Alguém tem alguma idéia pelo amor de DEUSSSSSSSSSSSSSSSSSSS.

Defina o JDialog como modal através do construtor:

http://download.oracle.com/javase/6/docs/api/javax/swing/JDialog.html#JDialog(java.awt.Dialog, java.lang.String, boolean)
http://download.oracle.com/javase/6/docs/api/javax/swing/JDialog.html#JDialog(java.awt.Frame, java.lang.String, boolean)

Passando true no parâmetro modal, seu JDialog sempre será exibido de forma modal ao chamar setVisible(true).

Você passou a tela principal como parâmetro na hora de criar o JDialog? Isso fará com que o JDialog pertença a sua tela principal.

Estou fazendo assim
JDIALOG LOGIN chama menu principal assim:

private void OK() {
        if (jtxtUsuario.getText().equals("DENIR")) {
            if (jptxtSenha.getText().equals("123456")) {
                Principal principal = new Principal();
                principal.setExtendedState(JFrame.MAXIMIZED_BOTH);
                principal.setVisible(true);
                this.dispose();
                JOptionPane.showMessageDialog(null, "Acesso ao sistema liberado e registrado para: " +
                                              jtxtUsuario.getText(),
                                              "Bem Vindo", JOptionPane.PLAIN_MESSAGE);
            } else {
..............................

JFrame Princapla chama login assim:

Login login = new Login(this, true);
        login.setLocationRelativeTo(null);
        //login.setAlwaysOnTop(true); //Janela sempre a frente
        //login.setModal(true); //
        login.setVisible(true);

O LOGIN até fica somente a frente mas ele não impede de mecher na janela principal do fundo, eu já fiz uma vez e funcionou belezinha so que aagora não está dando certo.

Deveria funcionar.

Tem como postar este construtor da classe Login?

tente com o método

http://download.oracle.com/javase/6/docs/api/java/awt/Dialog.html#setModalityType%28java.awt.Dialog.ModalityType%29

Exemplo:

http://www.java2s.com/Code/JavaAPI/javax.swing/JDialogsetModalityTypeModalityTypetype.htm

Galera consegui resolver o problema, na verdade não alterei nada no método acima, só que eu estava passando para a Janela Principal o JFRAME setModalExclusionType(TOOLKIT_EXCLUEDE) ao invés de setModalExclusionType(NO_EXCLUEDE), por isso meu menu principal estava permitindo mecher nos menus, só fiz essa mudança e pronto o login ficou totalmente MODAL.

Valeu Galera obrigado pela ajuda.

Porém agora estou com outro probelam, quando chamo a tela de LOGOFF que a mesma do LOGIN ao redigitar o USUARIO e SENHA ele recria outro menu principal, na verdade eu gostaria que ele Reconstruice, ou seja fechasse o que já está ativo e Recriasse o MENU PRINCIPAL novamnte, alguém tem alguma idéia???

Não entendi direito. O problema está em fechar o JFrame?

Se for isso use dispose:

Bom galera a única solução que consegui encontrar para esse problema citado acima foi criar um dispose() na dentro do método LOGOFF, as o ideal seria que ele executasse o dispose() na hora de clicar em OK na tela de LOGIN mas não deu certo.

Alguem tem alguma ideia???

Isso ai ERIC, sua dica me deu uma luz, na verdade já tinha envocado o dispose, mas tava chamando no inicio do metodo, resolvi chamar no final do metodo assim a janela so fecha depois de efetuar login, tava assim primeiramente:

private void Logoff() {
        this.dispose();
        Login login = new Login(this, rootPaneCheckingEnabled);
        login.setLocationRelativeTo(null);
        login.setVisible(true);
    }

depois fiz assim:

private void Logoff() {
        Login login = new Login(this, rootPaneCheckingEnabled);
        login.setLocationRelativeTo(null);
        login.setVisible(true);
        this.dispose();
    }

[quote=Groovin]Ei amigo da uma olhada neste site:

Tem uns cursos bem legais e baratos que podem te ajudar.
Pelo menos pra mim ajudou bastante.[/quote]

Opa velho gostei dos cursos mas vc sabe se emite certificado??? Pra mim to precisando pra contar horas na faculdade.

O usuário groovin teve seus posts apagados por fazer propaganda não autorizada no fórum. Na verdade, os posts eram tão iguais que pode até se tratar de um bot.