During development, I decided to move to a more "Swing-like" event system, use this instead. Better for adding new features in the future.
See Implementation