Use events for switching window.
Turns out horrible hacks are needed.
Uber defensive--
Use EDT when setting active frame.
No need for the invoke later
Merge pull request #94 from greboid/selectionevent

Use selection events to change windows.