javawindowlistener

windowOpened in java not working


Everytime I open my frame, windowOpened should print "opened" but it does not. All other abstract methods are working properly. I'm using Java 7. Any ideas for this behavior.

public class windowlistenerdemo extends Frame implements WindowListener 
{
    public windowlistenerdemo()
    {
        setSize(400,400);
        setVisible(true);
        this.addWindowListener(this);
    }

    @Override
    public void windowOpened(WindowEvent e) {
        System.out.println("open");
    }

    @Override
    public void windowClosing(WindowEvent e) {
        System.out.println("closing");
        this.dispose();
     }

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

    public static void main(String[] args) {
        windowlistenerdemo ob = new windowlistenerdemo();
    }
}

Solution

  •    setVisible(true);
       this.addWindowListener(this);
    

    You are setting the window to be visible before adding the listener. The windowOpened event has already fired. Try swapping these lines.