WindowListener

2 respostas
C

Boa Noite, pessoal to querendo fechar a janela mais o evento não ta funcionando alguém sabe me dizer por que não vai? agradeço a ajuda.

import java.awt.event.ActionEvent;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JFrame;


/**
 * @author 
 * 
 */
public class Invaders extends JFrame implements WindowListener{

	public static final int width = 800;
	public static final int height = 600;

	Invaders() {
		setTitle("invaders");
		setBounds(0, 0, width, height);

		setVisible(true);
		// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}



	public static void main(String[] args) {
		Invaders teste = new Invaders();
	}

	@Override
	public void windowActivated(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void windowClosed(WindowEvent e) {
		System.exit(0);  
		System.out.println("testre");
		
	}

	@Override
	public void windowClosing(WindowEvent e) {
		System.out.println("testre");
		System.exit(0);  
		
	}

	@Override
	public void windowDeactivated(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void windowDeiconified(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void windowIconified(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void windowOpened(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}
}

2 Respostas

LuksS

Vc tem que adicionar alguem que vai “escutar” pelos eventos da janela. Vc fez isso dizendo que sua classe Invaders terá o comportamento apropriado para isso implementando WindowListener. Agora explicitamente adicione à sua janela este listener assim:

addWindowListener(this)

coloque essa instrução no final de seu construtor por exemplo!

LuksS

Dica: Pessoalmente eu utilizo classes anônimas internas p/ isso. E quando ñ preciso de todos od métodos da interface WindowListener eu extendo WindowAdapter, redefinindo apenas os métodos necessários. Tipo

import java.awt.event.ActionEvent;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JFrame;


/**
 * @author 
 * 
 */
public class Invaders extends JFrame implements WindowListener{

	public static final int width = 800;
	public static final int height = 600;

	Invaders() {
		setTitle("invaders");
		setBounds(0, 0, width, height);

                addWindowListener(new WindowAdapter(){

	@Override
	public void windowClosed(WindowEvent e) {
		System.out.println("testre");
                System.exit(0);
		
	}
});
		setVisible(true);
		// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}



	public static void main(String[] args) {
		Invaders teste = new Invaders();
	}


	
	}
Criado 15 de janeiro de 2009
Ultima resposta 16 de jan. de 2009
Respostas 2
Participantes 2