There's just no way to write a fully configurable and flexible GUI system without having to specify a lot of data, either by hand or by config file. So don't feel too bad.
First, look at the new JavaFX stuff for GUIs that just came out with Java 8. They had to rewrite EVERYTHING from Swing because it no longer worked. So GUI code is hard.
I am of two minds on this one. I've coded up lots of GUIs in my career, from Win32, MFC, all the way to Scheme, Java, and Javascript Web 2.0, and I have experienced so many little issues and work arounds that I know trying to create your own GUI APA is waste of time. There are too many details to work out.
However, that's not for a game, that's for an API used by a million people. For a game, if you don't roll your own, then your GUI will look just like everyone else. Creating your own controls could lead to some awesome innovation. But as pointed out above, if you try to make a super flexable, robust, easy-to-use, well-documented GUI library that can be used by millions of beginning programmers to create amazing GUIs, you'll run out of time.
Long story short (too late), don't worry if it looks bad. That means you didn't over-engineer it, which is a good thing.