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!
acho que vai depender do que você quer salvar!
vlw
abs
guisantogui
Qro salvar os dados dos campos que forem alterados, e os outros permanecerem como estão!
UMC
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
A
abaldove
Bom você pode setar a propriedade DefaulCloseOperation para que ela não faça nada:
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.
guisantogui
Sim sim, entendi, mas eu qria mostrar a msg apenas se algum campo for alterado!
é meio complicado isso neh!
A
abaldove
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.
guisantogui
Bom é a primeira vez q faço isso, aceito exemplos!
mas obrigado pelas dicas vou pedir ajuda ao mestre “www.google.com.br” tb!
vlw!
UMC
Não é complicado!
tenta implantar do jeito que falei!
vlw
guisantogui
Ah, meu ingles ainda naum esta bem afinado, se tiver algo em portugues fica um pokinhu melhor :oops: