There are several open source frontends (nGhost being a great one) that allow you to do just this.Code:...and I want to be able to change it as I want when I want and not just the UI.
From experience, building and maintaining your own frontend can be very fun and it'll help you learn a lot about coding and about computers. But it is *very* time consuming and it takes a *long* time to get it to the point that you probably envision it being.
So I recommend, depending on your choice of platform, to take a closer look at RevFE for windows, and nGhost3 for *nix. They are IMHO the best designed open source frontends in existence. Both use C++/Qt and are *FAST*. Both are completely plugin based. If you don't like the media selection plugin, write your own. That's certainly faster than writing *everything* from scratch. Plus you still gain valuable coding experience and learn to work with a team (very important if you are thinking of being a coder as a career).
RevFE is probably the lightest and fastest frontend out there. It's very well designed and has a rapidly growing community.
nGhost3 is a slightly different paradigm than the others that uses a multi-process plugin design with an IPC link to keep everything integrated (think google chrome for mobile systems with awesome graphics).
If you really want to write your own, Java isn't a terrible choice. From experience, GUI in Java can be slower, but probably no slower than RR currently is. CLI apps in Java are fast, but still not as fast as native c/c++ compiled code.
Oh, and take a look at openMobile too. I haven't looked at the code, but from what I read here, it also follows good design practices.
Don't worry if it's written in a language you probably don't currently know. Programmers are almost worthless if they only know one programming language. It's extremely valuable to have a utility belt of knowledge of various computer languages.
We get these kinds of posts all the time. Most people who create their own front end realize what I've mentioned above and tire out within a few months. Those who choose to develop existing frontends usually end up creating something awesome and stick with it for years even.