When a LightBox is build, a windowListener is set, and this listener modify the png image even if the png image has not been build.
It causes NullPointerException.
The windowListener should be set only after the png image construction.
You should write something like this :
private PNGImage png = new PNGImage("images/lightbox.png", 1, 1));
instead of :
private PNGImage png;