Fazer usuario não conseguir fazer qualquer outra ação fora da janela

5 respostas
M

Oi pessoal, tudo bem?

Estou com uma duvida aqui, como que eu faço para impedir que o usuario clique em qualquer outra coisa alem da janela que eu estou definindo pra ele.

Por exemplo: tenho minha janela principal, e quando o usuario clica em “login” abre a janela de login pra ele.Eu quero que ele não consiga clicar em qualquer outro botão da janela principal enquanto ele não concluir o login.

Coloquei uma print em anexo mostrando minhas janelas, a principal e a de login


5 Respostas

charles.eduardo

Daew MarceloRocks, um caminho possivel é usar a JInternalFrames ( http://docs.oracle.com/javase/tutorial/uiswing/components/internalframe.html ).

E

A janela de login não deve ser um JFrame e sim um JDialog modal. Só isso é necessário.

M

Assim?

public class minhaJanelaAuxiliar extends JDialog

não funcionou, eu ainda consigo clicar em qualquer coisa da janela principal.

OBS: o actionlistener das duas janelas está na janela principal

TerraSkilll

Você precisa definir o JDialog como modal no construtor. Algo assim:

public class minhaJanelaAuxiliar extends JDialog{

  public minhaJanelaAuxiliar(){
    super();
    this.setModalityType(ModalityType.APPLICATION_MODAL);
  }

}
Abraço.
Margel_Douglas

Como o colega disse acima, vc pode usar o dialog modal

seuDialog.setModal(true);

Ele sendo modal vai bloquear a aplicação depois que ele fica visível
Tem que ter um certo cuidado, pois se vc tiver algum trecho de código no método onde vc exibe o dialog, este só sera excutado depois que o dialog for fechado.

Criado 22 de novembro de 2012
Ultima resposta 24 de nov. de 2012
Respostas 5
Participantes 5