This all completely depends upon how you wish to organize/build your application. You can get by on just J2SE by having your application make calls directly to the database - this gives you a 2-tier client/server application. J2EE allows you to build your application up into an n-tier architecture, and in so doing can make an application more scalable and maintainable by separating the roles into their own tiers (eg presentation, business logic, data access, etc...). J2EE is built on top of J2SE, so a solid understanding of J2SE is recommended before diving into J2EE.
from what i read swing comsumes more memory than the SWT
Curious where you read this (and this is just me, but I wouldn't base my decision solely on this)...both SWT and Swing have advantages/disadvantages - a quick google will let you be better informed on your choice (for instance,
http://stackoverflow.com/questions/2...n-swt-vs-swing ). A big factor you may wish to consider is you're client base - if working on many different platforms using SWT will require you to distribute a version for each different platform.