Relação entre Janelas!

5 respostas
arthurthiago

E ae galera…

Eu tow querendo saber como que eu faço pra uma janela ficar sobre a outra… tipo, você não pode usar a janela de trás enquanto não fechar a da frente… Porque do jeito que eu tow fazendo fica abrindo várias janelas e daí o cara pode abrir a mesma janela várias vezes!

5 Respostas

ViniGodoy

Use um JDialog modal.

O JDialog tem um método setModal, que quando você define como true, ele não deixa que o usuário mude de janela enquanto a dialog estiver aberta.

arthurthiago

hmmm… mas eu não consigo fazer isso com JFrames?? pq todos meus GUIs estão em JFrames… daí ia ser dose mudar todos…

E outra coisa que eu tava vendo agora… num JDialog você não pode mudar o ícone da janela?

Kknd

arthurthiago:
hmmm… mas eu não consigo fazer isso com JFrames?? pq todos meus GUIs estão em JFrames… daí ia ser dose mudar todos…

E outra coisa que eu tava vendo agora… num JDialog você não pode mudar o ícone da janela?

Nop, só com JDialog mesmo. Mas nem é tão difícil assim mudar. Se foi feito com um editor visual, daí sim é mais complicado (aqui já tive que recorrer a editar os arquivos .form do NetBeans)

brothermclaud

Arthur, o que vc diz são duas coisas diferentes. Uma é você desabiliar a janela que dispara a segunda enquanto esta segunda estiver aberta. Como o kknd disse, isso só pode ser feito com JDialog.

Outra coisas é essa de, ao ser executado várias o evento que abre a janela, são abertas várias instâncias dessa mesma janela. Para resolver isso, você precisa apontar uma mesma instância da janela. Para isso, crie uma instância da janela com um nome de variável, por exemplo:

JFrame janela2 = new JFrame();

depois, no evento que dispara essa segunda janela, use o set visível para essa instância:

janela2.setVisible(true);

Mas perceba que essa segunda forma não vai evitar que a primeira janela esteja acessível, mas ao clicar no botão que abre essa segunda janela (por exemplo) ele irá mudar o foco para a segunda janela aberta anteriormente.

Marck

Olá…

Voce pode colocar um boolean onde vc abre a janela. No caso, se estiver setado true e pq já tem uma janela aberta e não deixa abrir outra. Quando fechar, essa boolean recebe false, dizendo que a janela esta fechada para a próxima vez que o usuário tentar abrir.

Espero ter ajudado.

Marck

Criado 22 de fevereiro de 2007
Ultima resposta 27 de fev. de 2007
Respostas 5
Participantes 5