JDialog modal desaparece

12 respostas
dsiviotti

Tenho uma JFrame chamando uma JDialog. O problema é: se dou um Alt+Tab e vou até outro programa, quando volto o JDialog que estava em foco some e o JFrame que estava atrás aparece porém sem me dar acesso, como se o JDialog ainda estivesse predendo o foco.

No JFrame estou fazendo o que acho é o normal:

JDialog j = new JDialog();
j.setVisible(true);

Como faço para manter o JDialog aparecendo quando volto de outro programa? Existe outra solução?

12 Respostas

D

Teu JDialog não está modal (pelo menos de acordo com o teu exemplo – o construtor padrão JDialog() constróis diálogos non-modal).

Faça o teu JDialog ter como owner (proprietário) o teu JFrame. Use o construtor JDialog(Frame f, boolean modal):

dsiviotti

Putz. Bem no meu nariz.

Valeu.

tonyam

E quando for um JInternalFrame ???

root_

Quando for um JInternalFrame, que foi o meu caso usando o Netbeans 6.0 (versao de desenvolvimento), fiz o seguinte na criação do dialog:
jDialog = new javax.swing.JDilaog(this, true);

Teste aew… talvez funcione

mmenezes

cara nao vejo a diferenca nesta solucao. ele vai dar erro de pq na hora do construtor ele nao aceita passar um JinternalFrame

jDialog = new javax.swing.JDilaog(this, true);

o “this” eh o JInternalFrame .

mmenezes

alguem sabe alguma solução?

como fazer o JDialog nao desaparecer, onde o seu owner eh um JInternalFrame, eu faco a minha chamada assim :

MeuDialog dialog  = new MeuDialog(null, true);

vlw pessoal

P

O seu JInternalFrmae tem que ter uma referência para o JFrame onde está o JDesktop…

Na hora de criari o JDialog vc passa essa referencia no construtor…

Tenta e qualquer coisa posta ai…

mmenezes

paulohrl, perfeito cara brigadao pela ajuda.

fiz o seguinte:
no meu MDI (que eh um jFrame) criei um singletogn

ai na hora de criar meu jDialog fiz o seguinte.

MeuDialog dialog = new MeuDialog(MDI.getInstancia(),true);

abracos e valeu pela ajuda

P

as ordens

M

Tenta o método

setAlwaysOnTop(true);

D

Estava procurando uma solução e me deparei com este tópico…acho que “achei” uma melhor do que as informadas aqui:

No JInternalFrame, depois de instanciar o JDialog, use:

seuDialog.setModal(true); :thumbup:

M

Rapaz 2 anos depois hehehehehe vc desinterrou este tópico. auauauau

Criado 17 de outubro de 2004
Ultima resposta 6 de fev. de 2010
Respostas 12
Participantes 8