Well, good on you for getting things regularly updated on Github. Consider adding a graphic image / snapshot to the README and a clear link to the executable JAR file. As mentioned consider opening a WIP post as that is the best place to provide ongoing advice / critique.
I’m certainly not against Java2D as likely what is actually required for a passing grade by this effort (smaller tech demo) can be fulfilled with it. It’ll be easy when keeping things orthographic and more involved to go isometric, but still possible. Libgdx and going the GL route you’ll likely have up to a 3 month learning curve though using libgdx takes a lot of the rough edges off over a bespoke GL effort shortening the switch considerably.
It seems like you are hand rolling maps currently? Switching to Tiled / TMX is a next step and don’t overlook libtiled-java for loading TMX files and some other basic structure. After that figuring out how to store collision data as a meta layer in Tiled is pertinent. An article about the approach while Cocos2D oriented for code snippets explains the gist of how to approach things with Tiled.
There are various optimizations and other useful comments on the code you have currently posted, but make a WIP thread.
Regarding OO design I’m sure there is a bit to pick up there. Traps galore so to speak, but it’s worth fighting through or learning how things get difficult. This applies to any OO entity hierarchy and quest or inventory system; re: for now Entity and EntityPlayer is simple. A fun video that describes the situation you will encounter is this one; the code solution is for Javascript, but the description of the problem is good. Just remember the scenario described and keep that in mind as you go down the traditional OO route.