Widgets – Descripció

Si bé Swing ens proporciona un conjunt important de components, a l’hora de desenvolupar interfícies d’usuari, m’he trobat amb algunes mancances i algunes incomoditats. Durant els projectes que he desenvolupat amb interfícies d’usuari Swing, he hagut d’anar cobrint aquestes mancances i he hagut de fer-me la vida més fàcil per tal de poder lliurar els projectes en els terminis compromesos. El resultat ha estat un conjunt de components (widgets) que, almenys a mi, em faciliten la vida.

Molts d’aquests widgets han estat inspirats en treballs o articles de tercers. Vull agrair especialment les aportacions que l’Scott Stanchfield ha fet als meus widgets, especialment als que habiliten propietats bound. El seu llibre Effective VisualAge for Java, version 3 ha estat una gran font d’inspiració.

He procurat que tots els widgets del paquet tinguin una petita aplicació que n’il·lustri el comportament i l’ús.

Podeu descarregar els widgets aquí.

La següent taula presenta uns breu descripció de cadascun dels widgets del paquet.

Descripció dels Widgets
Widget Descripció
BoundJCheckBox Subclasse de JCheckBox que té la propietat selected bound.
BoundJComboBox Subclasse de JComboBox que té les propietats selectedItem iselectedIndex bound.
BoundJRadioButton Subclasse de JRadioButton que té la propietat selected bound.
BoundJTextField Subclasse de JTextField que té la propietat text bound.
BoundJTextArea Subclasse de JTextArea que té la propietat text bound.
BoundJTree Subclasse de JTree al que afegeix dues propietats bound: selectedNode iselectedObject.
EnhancedJTextField Subclasse de BoundJTextField que afegeix les següents utilitats:

  • Permet determinar el nombre màxim de caràcters que es poden teclejar en aquest camp
  • Permet determinar el conjunt de caràcters admissibles en aquest camp (p.e. especificant “abc123”, no deixarà escriure ‘z’ ni ‘4’, ni ‘?’, etc. )
ObjectJTextField Subclasse de BoundJTextField que representa un objecte. El camp emmagatzema l’objecte i el representa basant-se en el que torni el mètodetoString() de l’objecte.
RecallableJTextField Subclasse de EnhancedJTextField que permet recuperar, emprant les fletxes d’amunt i avall, els valors entrats al camp. Per afegir un valor a la llista, només cal polsar intro.
MaskedTextField Subclasse de BoundJTextField que proporciona la possibilitat d’emprar màscares. Funciona amb Java 1.2, 1.3 i 1.4
MoneyJFormattedTextField Subclasse de JFormattedTextField que facilita l’entrada de números que es representaran com a moneda.
Quan estem editant, podem emprar sense problemes el teclat numèric utilitzant el punt com a coma decimal. En sortir del camp, la xifra teclejada es presentarà en format de moneda (p.e. teclegem “1234.23” i es veurà “1.234,23 €”)
MultiKeySelection És un widget no visual que millora les capacitats de selecció del JComboBoxpermetent la selecció d’un ítem teclejant els n primers caràcters (no només el primer!). El criteri de selecció és “astut” i no té en compte ni accents ni majúscules i minúscules.