Widgets – Descripción

Si bien Swing nos proporciona un conjunto importante de componentes, en el momento de desarrollar interfaces de usuario, me he encontrado con algunas deficiencias y algunas incomodidades. Durante los proyectos que he desarrollado con interfaces de usuario Swing he tenido que ir cubriendo estas deficiencias y he tenido que hacerme la vida más fácil para poder entregar los proyectos en los plazos comprometidos. El resultado ha sido un conjunto de widgets que, al menos a mí, me facilitan la vida.

Muchos de estos widgets han estado inspirados en trabajos o artículos de terceros. Quiero agradecer especialmente las aportaciones que Scott Stanchfield ha hecho a mis widgets, especialmente a los que habilitan propiedades bound. Su libroEffective VisualAge for Java, version 3 ha sido una gran fuente de inspiración.

He procurado que todos los widgets del paquete tengan una pequeña aplicación que ilustre su comportamiento y su uso.

Pueden descargar los widgets aquí.

La siguiente tabla presenta una breve descripción de cada uno de los widgets del paquete.

Descripción de los Widgets
Widget Descripció
BoundJCheckBox Subclase de JCheckBox que tiene la propiedad selected bound.
BoundJComboBox Subclase de JComboBox que tiene las propiedades selectedItem yselectedIndex bound.
BoundJRadioButton Subclase de JRadioButton que tiene la propiedad selected bound.
BoundJTextField Subclase de JTextField que tiene la propiedad text bound.
BoundJTextArea Subclase de JTextArea que tiene la propiedad text bound.
BoundJTree Subclase de JTree al que añade dos propiedades bound: selectedNode yselectedObject.
EnhancedJTextField Subclase de BoundJTextField que añade las siguientes utilidades:

  • Permite determinar el número máximo de caracteres que se pueden teclear en este campo
  • Permite determinar el conjunto de caracteres admisibles en este campo (p.e. especificando»abc123″, no dejará escribir ‘z’ ni ‘4’, ni ‘?’, etc. )
ObjectJTextField Subclase de BoundJTextField que representa un objeto. El campo almacena el objeto y lo representa basándose en lo que devuelva el métodotoString() del objeto.
RecallableJTextField Subclase de EnhancedJTextField que permite recuperar, usando las flechas de arriba y abajo, los valores entrados en el campo. Para añadir un valor a la lista, sólo hay que pulsar intro.
MaskedTextField Subclase de BoundJTextField que proporciona la posibilidad de usar máscaras. Funciona con Java 1.2, 1.3 i 1.4
MoneyJFormattedTextField Subclase de JFormattedTextField que facilita la entrada de números que se representarán como moneda.
Cuando estamos editando, podemos usar sin problemas el teclado numérico utilizando el punto como coma decimal. Al salir del campo, la cifra tecleada se presentará en formato de moneda (p.e. tecleamos «1234.23» y se verá «1.234,23 €»)
MultiKeySelection Es un widget no visual que mejora las capacidades de selección del JComboBoxpermitiendo la selección de un ítem tecleando los n primeros caracteres (no sólo el primero!). El criterio de selección es «astuto» y no tiene en cuenta ni acentos ni mayúsculas y minúsculas.