windowClosing

4 respostas
C

boas!

windowClosing é acionada quando pressiono o “X” da janela.

Mas quando crio um botao que aciona o código:

setVisible(false);

dispose();

windowClosing não é acionada.

Tem algum jeito de fazer windowClosing ser acionada?

obrigado

4 Respostas

cv1

Voce pode postar o menor trecho de codigo possivel que reproduza o problema? Sua descricao nao ficou bem clara.

C

Segue o fonte criado com o NetBeans 4.1: um JFrame com um JButton

[code]
/*
* NewJFrame.java
*
* Created on June 14, 2005, 9:36 PM
*/

/**
*
* @author horita
*/
public class NewJFrame extends javax.swing.JFrame {

public int dummy = 0;

/** Creates new form NewJFrame */
public NewJFrame() {
initComponents();
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//
private void initComponents() {
jButton1 = new javax.swing.JButton();

getContentPane().setLayout(null);

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
formWindowClosing(evt);
}
});

jButton1.setMnemonic('F');
jButton1.setText("Fechar");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

getContentPane().add(jButton1);
jButton1.setBounds(90, 120, 130, 60);

java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-400)/2, (screenSize.height-300)/2, 400, 300);
}
//

private void formWindowClosing(java.awt.event.WindowEvent evt) {
System.out.println("passei por aqui...");
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
setVisible(false);
dispose();
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
// End of variables declaration

}

C

desculpem pela “formatacao” do codigo…

Gostaria que formWindowClosing fosse acionada automaticamente sempre que fecho a janela.

Se pressiono o “X” ou ALT-F4, a janela fecha e eu tenho “passei por aqui…” na console pois a função:

private void formWindowClosing(java.awt.event.WindowEvent evt) {

System.out.println(“passei por aqui…”);

}

está sendo acionada.

Se eu pressiono o botao:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

setVisible(false);

dispose();

}

a janela fecha mas eu não tenho “passei por aqui…” na console

Na realidade, em minha aplicação, o botão é um conjunto de botões em um JavaBean que eu gostaria que tivessem funções pré definidas e um deles comandaria o fechamento das janelas que em suas WindowClosing fariam a limpeza da casa e outras operações que se fizessem necessárias.

theBalrog

Não que eu tenha lido seu código… é muito grande…
Mas, se não me engano, vc quer que, ao clicar em um botão, por exemplo, disparar o windowClosing()

Seria isso???

Criado 14 de junho de 2005
Ultima resposta 15 de jun. de 2005
Respostas 4
Participantes 3