Moved listener adding to window responsibility, and used magic to get GridBagLayout to work.