The answer is "it depends"....
Spring started off as an alternative to EJBs and the bloated programming requirement of J2EE. If you go back and look at their old mission statement you'll see it was all about addressing the problems with J2EE, problems that have all been fixed in Java EE.
Spring has evolved into much more than just the core Spring framework but in the long run it is still basically an alternative stack for enterprise applications. Whether you need Spring depends on you, where you want to work, what types of apps you'll be working on, and to a large degree personal preference.
Maven is a build tool. You don't have to use Maven to use Java EE or Spring but it helps sometimes. Maven will setup your project's directories (new project wizard). Different IDEs support Maven structured projects so it lets team member choose different IDEs. Maven is also really big for its dependency management features. Lets say you want to do JAX-RS development with Jersey (the reference JAX-RS implementation). You need to add a bunch of JARs to your project and some of those JARs might require you to add other JARs, etc. You can do it manually or you can add a snippet of text to your project's Maven config file (pom.xml) and Maven will download and add all the JARs for you. It has gotten so bad that some projects only bother to document what you need to add to your pom.xml and don't list the JARs for non-Maven users.
As a developer that switches between both platforms on a regular basis I have been using STS most recently, its basically eclipse with additional enhancements.
In the end it does not really matter. You can even use Visual Studio to create Java applications if you want to go through the trouble of setting up VS to run Java's compiler, you just won't have intellisense.
Have a look at doing some stuff with Spring Framework, it's a Java framework that provides you with standard ways of achieving common tasks. There is a lot to it but you could start with some of the basics. This is an industry standard now for Java programmers so you'll encounter it sooner or later.
Try learning some programming Kata's, they are small tasks to help you get familiar with all the concepts. I find they are really good in teaching you how to code better. For example here is uncle bob's bowling game kata. It walks you through it using a really good example of test driven development.
Good luck :D
recommendations:
1) Spring roo
2) If you don't mind learning a new syntax ( which is an extension of java syntax ), check out grails and groovy.
This is the closest to the productivity of ruby on rails vis-a-vis creating db-backed web applications. This has the added bonus of running on the JVM, has seamless interoperability with java libraries, has dynamic typing and many other syntactic advances which make programming a breeze. It's really groovy, maan.
ICS doesn't have anything itself for dealing with XML type APIs.
If you're talking about REST/XML APIs, I suggest you check out http://www.springsource.org/spring-android I've used it extensively; it's very easy to use. And it pairs great with my HttpResponseCache library.
If you're talking about SOAP/XML APIs... I haven't messed with that. But Google reveals a few libraries to help you out.
While I wouldn't recommend doing a DLC store for an indie game, in-game store of any kind (but mostly item shop) is mainly done via web service, where you build a web service on a server which is then connected directly to game client, they exchange info so that a client can display items, while a server controls everything else.
Web service can be done in Java as well. I've done some simple services with Spring (not game related), but I hear new Java EE is good as well. Also, I believe you can do a web service in any language with any technology.
I would agree with the above, but instead recommend the Spring Integration framework, which is designed for exactly this use case.
The example in the article could be rewritten similarly to the third code block in this section of the documentation. The reverser would be a Transformer.
Hope this helps!
For Swing, after googling "netbeans swing crud": http://netbeans.dzone.com/print/15343
However, the preferred GUI framework seems to be a web browser, for which http://www.springsource.org/spring-roo or http://www.primefaces.org/ can help you.
Hit the Googles. Adjust your search parameters for the last year, otherwise the shit-ton of available tutorials and material will overwhelm your available time.
Perhaps this doesn't sound as much fun, but doing some server side stuff would be a great idea! Maybe create a small webapp that manages bookings for a fictional laundromat.
Check out Spring Roo
If you've played around with this stuff, you might want to check out Java EE in general, but maybe that can wait until college :)
Coming from RR you probably want to check out Play, or Grails. Neither of which are Java, but Scala and Groovy respectively (they play nice with Java libraries though).
If you need more "enterprisey" features and prefer Java, you should check out JEE or Spring, both of which can be configured mostly without any XML.
To get a Spring webapp up and running in minutes, you could try Spring Roo. I'm sure there's something similar for JEE.
Maybe check out Spring Roo? I'm going to give it a try in the next week or so, but I've been hearing some pretty good things about it, although I've never been a fan of scaffolding.
Spring Integration has excellent support for processing files from directories. It treats files like messages and you can transform and route them according to your processing needs. Probably overkill unless you already use Spring.