Jump to content
amvm

windowClosing

Recommended Posts

amvm

Boas... adicionei o evento windowClosing(WindowEvent evt) á minha JFrame. O meu objectivo é, se estiver a decorrer num dado jogo, e se premir o "x", deva aparecer uma jDialog a perguntar se quero guardar... Se escolher sim, deveria ir para esse tal cartao que é adicionado ao cardLayout e por aí a fora...

O que acontece é que se carrego "sim" (para guardar o jogo) a janela fecha automaticamente.

  private void trataBotaoSair() {
        addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent evt) {
                if (flag) { //flaG que me diz se estou realmente a jogar
                           //Classe guardar contém o método cartão que cria um painel com as opções de guadar e que mais tarde é adicionado
                    Guardar g1 = new Guardar();
                    g1.cartao();
                           //classe guardar contem ainda o metodo DialogGuardar que emite uma msg a peguntar se quer guardar e esse metodo retorna a opçao do utilizador
                    int i = g1.DialogGuardar();
                //    System.out.println(i);
                    if (i == 0) {
                                //adiciona ao painel p4... (que depois é inserido na jframe o painel g1... 
                        p4.add(g1, "Segundo");
                        cl.show(p4, "Segundo");
                    } else {
                        System.exit(0);
                    }

                } else {
                    DialogSair botaoSair = new DialogSair(GuiPrincipal.this, "Sair");
                    botaoSair.trataInfoSair();
                }
                
              //  System.out.println("ola mundo");
            }
        });
    }

alguém me sabe ajudar?

Share this post


Link to post
Share on other sites
Knitter

Verifica qual a acção que a JFrame está a fazer por omissão. Se não definiste, coloca a acção por omissão como DO_NOTHING_ON_CLOSE, ex:

setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)

Se não alterares a acção de fecho por omissão então a JFrame está a ser escondida automaticamente.

Share this post


Link to post
Share on other sites
amvm

Continua a não gostar da ideia o meu programa... Tipo eu coloquei essa definição no meu construtor e antes de chamar esse método trataBotaoSair()...

  public GuiPrincipal(String titulo) {
        super(titulo);

this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
trataBotaoSair();

Reparei agora que, independentemente:

-> Estou a jogar e carrego no "X" -> pergunta se quero guardar... Quer escolha sim ou nao, fecha aplicação por completo

-> Nao estou a jogar e carrego no "X"-> pergunta se desejo sair...  Quer escolha sim ou nao, fecha aplicação por completo

-.-

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.