Hi and welcome :),
To start with: It’s very good you’re starting with a 2D game. Most of us have started with that, and most of us think that it is the way to go when you just got into gameprogramming.
Making game engines is a very good way to learn in depth about games, and personally I think it’s really fun to do. However, aside from educative reasons, if you want to actually create a game and have a high performace, I suggest you start using a pre made game engine. On this forum you’ll be able to find a few 2D game engines such as Mercury. I haven’t tried it myself, but I do know about it’s existence. I personally had some experience with Slick2D, which, IMHO, is a very nice library and fairly easy to use.
If you want to get something more of a challenge (but I’d suggest you first start of by learning game programming basics) you can look into LWJGL, which is the library for hardware accelerated graphics in java.
You could also make a game in Java2D, which just uses the built in Java API’s for graphics programming. Personally I learned it this way, and by using some Google magic and some trial and error it’s fairly easy to get a decent game going.
I find it hard to tell you exactly where to start, but I guess you have enough information now to start with.
Good luck and happy programming 