Nombres de Paquetes Swing

Los nombres de los paquetes de Swing han cambiado con el tiempo. Esta seción utiliza los nombres de paquetes finales de Swing, que generalmente empiezan con javax.swing. Si tienes código que utiliza nombres de paquetes anteriores como com.sun.java.swing, necesitarás convertirlos.

Esta página tiene dos partes:

¿Cómo convertir a Nombres de Paquetes Finales?

Entre las versiones Beta 2 y Beta 3 del Siwng 1.1 han cambiado los nombres de los paquetes de Swing. Por ejemplo, en la Beta 2, el paquete principal de Swing se llamaba com.sun.java.swing. En la Beta 3 de Swing 1.1 el nombre es javax.swing. Los mismos cambios han ocurrido entre la Beta 4 y las versiones FCS del JDK 1.2.

Convertir los nombres de paquetes es sencillo, aunque puede ser tedioso hacerlo a mano cuando están invulucrados muchos ficheros fuente. Afortunadamente, el equipo de Swing proporciona una utilizadad llamada PackageRenamer que convierte los programas para utilizar los nombres finales de paquetes de Swing. Podemos encontrar este programa en http://java.sun.com/products/jfc/PackageRenamer.

La siguiente tabka muestra cómo han cambiado los nombres

Nombre Antiguo:
(Swing 1.1 Beta 2, JDK 1.2 Beta 4)
Nombre Final:
(Swing 1.1 [Beta 3 and later], JDK 1.2 FCS)
com.sun.java.accessibility javax.accessibility
com.sun.java.swing javax.swing
com.sun.java.swing.border javax.swing.border
com.sun.java.swing.colorchooser javax.swing.colorchooser
com.sun.java.swing.event javax.swing.event
com.sun.java.swing.filechooser javax.swing.filechooser
com.sun.java.swing.plaf javax.swing.plaf
com.sun.java.swing.plaf.basic javax.swing.plaf.basic
com.sun.java.swing.plaf.metal javax.swing.plaf.metal
com.sun.java.swing.plaf.motif com.sun.java.swing.plaf.motif (no cambia)
com.sun.java.swing.plaf.multi javax.swing.plaf.multi
com.sun.java.swing.plaf.windows com.sun.java.swing.plaf.windows (no cambia)
com.sun.java.swing.table javax.swing.table
com.sun.java.swing.text javax.swing.text
com.sun.java.swing.text.html javax.swing.text.html
com.sun.java.swing.tree javax.swing.tree
com.sun.java.swing.undo javax.swing.undo
com.sun.java.swing.plaf.mac com.sun.java.swing.plaf.mac (no cambia)
com.sun.java.accessibility.util com.sun.java.accessibility.util (no cambia)


Nota: Los paquetes com.sun.java.swing.plaf.mac y com.sun.java.accessibility.util no forman parte de la versiones de Swing o del JDK. Se distribuyen de forma separada como parte de la versión para MacOS. Podemos ver las páginas del JFC para más detalles.

La historia de los Nombres de Paquetes Swing

En distintos momentos, el API Swing ha utilizado los siguientes nombres de paquetes:
  • com.sun.java.swing
  • java.awt.swing
  • javax.swing

Al final, el corazon del API de Swing está bajo el paquete javax.swing package, con algunos paquetes adicionales proporcionados por Sun bajo com.sun.java.swing.

En todas las versiones del JFC 1.1 hasta la Beta 2 del Swing 1.1 el nombre del paquete principal de Swing era com.sun.java.swing. Las versiones JFC 1.1 fueron creadas para utilizarlas con el JDK 1.1. No había soporte interno de Swing en el JDK 1.2 hasta la Beta 2 del JDK 1.2.

En las versiones Beta 2 y Beta 3 del JDK 1.2 el API Swing estaba en un nuevo paquete: java.awt.swing. Sin embargo, algunos clientes dijeron que querían que los nombres de paquetes de Swing fueran los mismos en el JFC 1.1 y en JDK 1.2, para poder utilizar el mismo código en ambas versiones.

Como resultado, en la Beta 4 del JDK 1.2 el equipo Swing movió el paquete Swing a com.sun.java.swing. Desafortunadamente, a mucha gente no le gustó este cambio. Una de las razones para el descontento era que tener el coracón del API en un paquete que no empezaba con "java" parecía implicar que Swing no era parte del API.

El equipo Swing reaccionó lanzado una proposición para mover los paquetes Swing a javax.swing tanto en el JFC 1.1 como en JDK 1.2. La proposición fue aceptada por la comunidad de usuarios, y los nuevos nombres de paquetes se introdujeron en las versiones Beta 3 del Swing 1.1 y el JDK 1.2. (Todavía no se ha publicado niguna versión del JDK 1.2 con los nuevos nombres).


Ozito