JFrame estilo modal [RESOLVIDO]

6 respostas
F

Olá galera!
Como eu faço para que o meu JFrame fique “estilo modal”, ou seja, quando ele estiver aberto eu não consiga clicar nos formulários que estão abertos por trás.
T+

6 Respostas

B

Encontrei este link: http://java.sun.com/developer/JDCTechTips/2001/tt1220.html
Não li tudo, apenas passei o olho… Talvez te ajude.

E

Crie uma classe estendendo JDialog.
Ao instanciar o seu frame é só invocar o método setModal(true):

public class FrameModal extends JDialog {
...
}

public class Teste {
...
   public static void main(String[] args) {
       FrameModal frame = new FrameModal();
       frame.setModal(true);
   }
}
A

Exemplo na contrução do JFrame.

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setModal(true); setResizable(false);

L

admsilva:
Exemplo

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setModal(true); setResizable(false);

Isso só irá funcionar com JDialog.

Utilize a ferramenta de busca antes de postar, existem 9999 tópicos iguais a esse :wink:

Mude de JFrame para JDialog.

Tchauzin!

A

lina:
admsilva:
Exemplo

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setModal(true); setResizable(false);

Isso só irá funcionar com JDialog.

Utilize a ferramenta de busca antes de postar, existem 9999 tópicos iguais a esse :wink:

Mude de JFrame para JDialog.

Tchauzin!

Exato, lapso meu.

F
eaduarte:
Crie uma classe estendendo JDialog. Ao instanciar o seu frame é só invocar o método setModal(true):
public class FrameModal extends JDialog {
...
}

public class Teste {
...
   public static void main(String[] args) {
       FrameModal frame = new FrameModal();
       frame.setModal(true);
   }
}
Galera! Deu certo! A única coisa que tive que mudar foi o:
frame.setModal(true)
ele vai no método construtor:
setModal(true);
lina, eu não sabia que JFrame não tinha este recurso!

Obrigado a todos pela ajuda!
T+

Criado 21 de agosto de 2009
Ultima resposta 21 de ago. de 2009
Respostas 6
Participantes 5