Salvar as alterações

Quero fazer com que qdo o user clicar no botão de fechar a janela pergunte automaticamente se deseja ou não salvar as alterações!

encontrei o metodo setFocusCycleRoot, mas naum sei como usa-lo corretamente, tipo algum exemplo de codigo que eu devo passar no meio do metodo!

[quote=guisantogui]Quero fazer com que qdo o user clicar no botão de fechar a janela pergunte automaticamente se deseja ou não salvar as alterações!

encontrei o metodo setFocusCycleRoot, mas naum sei como usa-lo corretamente, tipo algum exemplo de codigo que eu devo passar no meio do metodo!
[/quote]
acho que vai depender do que você quer salvar!

vlw
abs

Qro salvar os dados dos campos que forem alterados, e os outros permanecerem como estão!

Você terá que fazer algo do tipo!
Quando clicar em fechar pega esses valores e compara com o que estão no Banco de Dados!
Se estiver alterado pergunta que salvar!
e assim vai!

Lembrando que essa deve ser uma das soluções que existe! deve ter algo mais simples!

vlw
abs

Bom você pode setar a propriedade DefaulCloseOperation para que ela não faça nada:

setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);

Quando o usuario clicar no X a janela não vai fechar e você ainda pode sobrescrever o método formWindowClosing, como exemplo:

private void formWindowClosing(java.awt.event.WindowEvent evt) { // TODO add your handling code here: int fechamento = JOptionPane.showConfirmDialog(null, "Deseja realmente sair ?", "Controle E/S", 1); if (fechamento == 0) { System.exit(0); }

Quando o usuario clicar no X sera exibida um ConfirmDialog e ele decidira se ira fechar ou não, nesse metodo você pode chaamar alguem para salvar a suas informações, só não as salve nessa classe mesmo.
:smiley:

Sim sim, entendi, mas eu qria mostrar a msg apenas se algum campo for alterado!

é meio complicado isso neh!

Bom existem maneiras de se fazer isso, você poderia delegar a uma classe a responsabilidade de monitorar seus campos e se ocorrer alguma alteração ela notificaria a alguem e esse alguem executaria uma ação (essa é a ideia do pattern observer) ou você poderia fazer um bind dos campos da sua view com uma classe java e monitorar para ver se teve alguma alteração eu acredito que na maioria dos casos você vai precisar saber o estado dos seus campos para poder fazer isso.

Aqui tem um tutorial de Observer

Para binder você pode usar o framework Genesis, desculpa se estou complicando muito, provavelmente existem soluções mais simples.

Bom é a primeira vez q faço isso, aceito exemplos! :smiley:

mas obrigado pelas dicas vou pedir ajuda ao mestre “www.google.com.br” tb!
vlw!

Não é complicado!
tenta implantar do jeito que falei!

vlw

Ah, meu ingles ainda naum esta bem afinado, se tiver algo em portugues fica um pokinhu melhor :oops: