Hola, bueno todos esos términos están relacionados con JAVA:
1) Swing, es el nombre de la librería java que permite desarrollar aplicaciones gráficas de usuario (GUI). Es decir aplicaciones tipos cliente/servidor con ventanitas. Mira este link para más información:
http://www.programacion.com/java/tutorial/swing/
2) J2EE, es el conjunto de tecnologías avanzadas de Java para realizar aplicaciones empresariales. J2EE esta definido entonces por un conjunto de especificaciones estándares de JAVA, entre estas están: JSP, Servlets, EJB, JMS, JavaMail, WebServices, JMX, JTA, JSF, JSTL, etc
3) Los EJB, son componentes avanzados Java, que pueden ser invocados de forma remota, para manejo de lógica de negocio, persistencia de datos y mensajería. Estos corren en un EJB Container, quien se encarga de administrar la seguridad, transaccionabilidad y persistencia del componente. Los EJB Container los encuentras en los servidores de aplicaciones compatibles con J2EE: Weblogic, Oracle IAS, WebSphere, JBoss, Extend, EAServer, Jonas, etc.
Espero te aclare el panorama...