5.After I setVisible(false) my arrow keys no longer make my character move on GameGUI.
Don't use a KeyListener. Swing was designed to be used with Key Bindings
.
See Motion Using the Keyboard, which will explain your probable problem and give the solution using Key Bindings
.