Fechar jframe

3 respostas
M

olá pessoal
tenho o seguinte jframe

JFrameMontaGradeProgramacao.setSize(300, 240);
  JFrameMontaGradeProgramacao.setTitle("Grade de Programação Diária");
  JFrameMontaGradeProgramacao.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
  JFrameMontaGradeProgramacao.setResizable(false);
  JFrameMontaGradeProgramacao.add(telaMontaGradeProgramacao);
  JFrameMontaGradeProgramacao.setVisible(true);
  Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  Dimension windowSize = JFrameMontaGradeProgramacao.getSize();
  int x = (int) ((screenSize.getWidth() - windowSize.getWidth()) / 2);
  int y = (int) ((screenSize.getHeight() - windowSize.getHeight()) / 2);
  JFrameMontaGradeProgramacao.setLocation(x, y);
  JFrameMontaGradeProgramacao.addWindowListener(new WindowAdapter() {
   public void windowClosing(WindowEvent e) {
    
       int fecha = 0 ;
       fecha = valida_quantidade_insercao();
       if (fecha!=0) {
        JOptionPane.showMessageDialog(null, "Quantidade de inserções inválida", "Operador", JOptionPane.ERROR_MESSAGE);
        return;
       } else this.windowClosed();

   }

   protected void windowClosed() {
    jButtonMontaGradeProgramacao.setEnabled(true);
   }
  });

mas na variavel fecha so quero que feche a janela quando fecha for diferente de zero
no metodo valida_quantidade_insercao() estou retornado 1
mas mesmo assim ele fecha a janela

3 Respostas

walissongpi

sim, o evento foi chamado antes de fechar a janela, mas vc não fez nada para impedir/permitir.

tente algo mais ou menos assim:

JFrameMontaGradeProgramacao.setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);// o pulo do gato. 8) 

public void windowClosing(WindowEvent e) {  
    
     int fecha = 0 ;  
     fecha = valida_quantidade_insercao();  
     if (fecha!=0) {  
      JOptionPane.showMessageDialog(null, "Quantidade de inserções inválida", "Operador", JOptionPane.ERROR_MESSAGE);  
      return;  
     } else{
        JFrameMontaGradeProgramacao.dispose();
          this.windowClosed();  
}
  
}
M

RESOLVIDO

obrigado walisson

walissongpi

marcoscorso:
RESOLVIDO

obrigado walisson


:smiley: Disponha.

Criado 13 de maio de 2010
Ultima resposta 13 de mai. de 2010
Respostas 3
Participantes 2