Very good use of the theme. I was very confused about how the mechanics worked, but at the end I figured them all out through trial and error.
For example, at the first box stage I didn't know what I was supposed to do at all and was stuck there for quite a while. After a ton of retries I figured that the gap in the yellow wall was for sticking a character in there and then pushing the box towards the middle section so the two boxes end up on top of one another. You can solve this issue by making an easier box introductory stage where the boxes are already stacked, so player sees and understands that putting boxes on top of one another is possible and very important for solving puzzles.
Other than my problems with the difficulty, the game was actually really fun. Bonus points for making it in Java without the help of a dedicated game engine.