The class that is interested in processing a window state event
either implements this interface (and all the methods it contains)
or extends the abstract
(overriding only the methods of interest).
The listener object created from that class is then registered with
a window using the
addWindowStateListener method. When the window's
state changes by virtue of being iconified, maximized etc., the
windowStateChanged method in the listener object is
invoked, and the
WindowEvent is passed to it.