Hey Edmond,
Thanks! Especially the comments about the difficulty. I wasn't really sure if I had made some levels too easy or too hard. I do think I made the last level a bit too difficult, but it being the last I figured the player had something to prove by now :D.
I also tried making / adding some sounds and music, but unfortunately I quickly started to run out of time and decided to focus on other aspects of the game. I was hoping to make it sounds a bit 8-bity, but who knows, maybe I'll add that in later.
I actually didn't use any game engine (or libraries for that matter). It's all Java's own AWT/Swing to do all the graphics / animations, with a healthy dose of trigonometry to simulate basic collisions and physics. Especially the collision detection was hard to do. It probably wasn't the smartest idea to build my own "game engine" from scratch, but it was fun, challenging, and I taught myself something new :)