Questionar saída, em aplicação Swing!  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
drix
JavaBaby
[Avatar]

Membro desde: 16/06/2006 14:42:48
Mensagens: 84
Localização: Maringá - Paraná
Offline

Estou montando um sistema desktop com Swing/AWT.
Gostaria de implementar um procedimento, que, ao clicar no botão fechar [X] do meu JFrame principal, o sistema pergunta se realmente é isto que o usuário quer fazer, se confirmar então fecha, caso contrário mantém o JFrame aberto.

Alguém tem alguma sugestão

Consegui capturar o evento WindowEvent.WINDOW_CLOSING, contudo não consigo cancelá-lo!

Estou no caminho certo?


JDRIx
=/=/=/=/=/=/=/
Café? Servido?
[MSN]
RicardoLuis
JavaEvangelist

Membro desde: 12/08/2003 14:47:56
Mensagens: 393
Localização: Cuiabá / MT
Offline

Seu JFrame pode implementar a interface WindowListener, ai no método windowClosing você coloca a implementação do que você quer que aconteça, no seu caso, criar a janela de confirmação.
Não se esqueça de adicionar ao construtor da sua classe a seguinte chamada:

maquiavelbona
JWizard
[Avatar]

Membro desde: 29/06/2006 09:06:51
Mensagens: 2447
Localização: São Paulo - SP
Offline

Bom dia!

O que você pode fazer é o seguinte. Modificar o setDefaultCloseOperation(int) de javax.swing.WindowConstants.EXIT_ON_CLOSE para javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE e depois implementar um WindowListener.
Dê uma olhada na documentação do swing no javadoc e se achar complexo demais, de um toque.

Até!

----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)

"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781)
maquiavelbona
JWizard
[Avatar]

Membro desde: 29/06/2006 09:06:51
Mensagens: 2447
Localização: São Paulo - SP
Offline

[Editado]
Mensagem duplicada, desculpe.
[/Editado]

----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)

"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781)
drix
JavaBaby
[Avatar]

Membro desde: 16/06/2006 14:42:48
Mensagens: 84
Localização: Maringá - Paraná
Offline

Obrigado Ricardo.
Na verdade, meu objetivo é cancelar o evento de Fechar do JFrame.

Eu implementei a seguinte solução, para o problema:

No frame, cancelei a ação do botão fechar:


Capturei o evento WindowClosing, faço a pergunta, e fecho manualmente o sistema.




JDRIx
=/=/=/=/=/=/=/
Café? Servido?
[MSN]
maior_abandonado
JWizard
[Avatar]

Membro desde: 03/09/2007 11:30:08
Mensagens: 2694
Localização: sp
Offline

pessoal eu to com um problema parecido... eu to querendo o seguinte, um determinado botão na primeira janela abre a segunda, se eu fechar a segunda, quero que feche só a segunda...até ai ok, eu usei JDialog ao inves de JFrame na construção da 2 janela.

a questão é a seguinte, eu tenho um botão no meio da janela (nas 2) que serve pra fecha a janela, ai no actionperformed, no metodo chamado por ele, eu coloquei um system.exit... o problema é que isso fecha as 2 janelas...e eu quero q só feche uma...

o que que eu devo colocar no corpo desse metodo ai pra fecha só a janela do botão que foi clicado? (se for apertado na segunda janela, quero que feche só ela, se for na primera pode até fecha as 2...)

to botando um codigo aki pra ilustra esse exemplo:

janela1



janela 2


This message was edited 2 times. Last update was at 05/10/2007 10:00:24


espero ter ajudado...

falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico.
maior_abandonado
JWizard
[Avatar]

Membro desde: 03/09/2007 11:30:08
Mensagens: 2694
Localização: sp
Offline

alguem ai pode me ajuda???

espero ter ajudado...

falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico.
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Não pegue carona no tópico dos outros.

System.exit(0); é para fechar a aplicação.
Se seu interesse é só fechar a janela, use o método dispose();

Se você quer só esconder a janela, para depois usa-la novamente, use setVisible(false);

Ambos os métodos existem na classe JFrame, JDialog e JInternalPane.

This message was edited 1 time. Last update was at 05/10/2007 13:39:03


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Carlos_ds_jar
Virtual Machine Man
[Avatar]

Membro desde: 27/01/2007 15:38:24
Mensagens: 540
Localização: Ceará e Paraíba
Offline

ainda bem que achei isso, agradeço a todos!
[Email] [MSN]
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team