Throughout the code, almost every caught exception results in a call to printStackTrace() and nothing more. This does nothing for the user! Have the application display messages when something goes wrong, so the user knows to restart the application or take some other appropriate action.
A simple error popup with a basic error message should be sufficient. It will tell the user to restart the application.