{"id":124,"date":"2016-01-06T10:26:35","date_gmt":"2016-01-06T10:26:35","guid":{"rendered":"http:\/\/10.0.0.10:8888\/wp\/?page_id=124"},"modified":"2017-12-02T08:53:12","modified_gmt":"2017-12-02T08:53:12","slug":"widgets-descripcio","status":"publish","type":"page","link":"https:\/\/www.froses.com\/index.php\/ca\/widgets-descripcio\/","title":{"rendered":"Widgets &#8211; Descripci\u00f3"},"content":{"rendered":"<p>Si b\u00e9 Swing ens proporciona un conjunt important de components, a l&#8217;hora de desenvolupar interf\u00edcies d&#8217;usuari, m&#8217;he trobat amb algunes mancances i algunes incomoditats. Durant els projectes que he desenvolupat amb interf\u00edcies d&#8217;usuari Swing, he hagut d&#8217;anar cobrint aquestes mancances i he hagut de fer-me la vida m\u00e9s f\u00e0cil per tal de poder lliurar els projectes en els terminis compromesos. El resultat ha estat un conjunt de components (<em>widgets<\/em>) que, almenys a mi, em faciliten la vida.<\/p>\n<p>Molts d&#8217;aquests widgets han estat inspirats en treballs o articles de tercers. Vull agrair especialment les aportacions que l&#8217;<a href=\"http:\/\/www.javadude.com\/\" target=\"_blank\" rel=\"noopener\">Scott Stanchfield<\/a> ha fet als meus widgets, especialment als que habiliten propietats <em>bound<\/em>. El seu llibre <em>Effective VisualAge for Java, version 3<\/em> ha estat una gran font d&#8217;inspiraci\u00f3.<\/p>\n<p>He procurat que tots els <em>widgets<\/em> del paquet tinguin una petita aplicaci\u00f3 que n&#8217;il\u00b7lustri el comportament i l&#8217;\u00fas.<\/p>\n<p>Podeu descarregar els <em>widgets<\/em> <a href=\"https:\/\/www.dropbox.com\/s\/84i7zmqn352fra7\/FWidgets.zip?dl=0\" target=\"_blank\" rel=\"noopener\">aqu\u00ed<\/a>.<\/p>\n<p>La seg\u00fcent taula presenta uns breu descripci\u00f3 de cadascun dels <em>widgets<\/em> del paquet.<\/p>\n<table border=\"1\" summary=\"Descripci\u00f3 resumida de cadascun dels Widgets.\" width=\"745\">\n<caption align=\"bottom\">Descripci\u00f3 dels Widgets<\/caption>\n<tbody>\n<tr>\n<th scope=\"col\" width=\"225\">Widget<\/th>\n<th scope=\"col\" width=\"620\">Descripci\u00f3<\/th>\n<\/tr>\n<tr>\n<td><strong>BoundJCheckBox<\/strong><\/td>\n<td>Subclasse de <code>JCheckBox<\/code> que t\u00e9 la propietat <code>selected<\/code> bound.<\/td>\n<\/tr>\n<tr>\n<td><strong>BoundJComboBox<\/strong><\/td>\n<td>Subclasse de <code>JComboBox<\/code> que t\u00e9 les propietats <code>selectedItem<\/code> i<code>selectedIndex<\/code> bound.<\/td>\n<\/tr>\n<tr>\n<td><strong>BoundJRadioButton<\/strong><\/td>\n<td>Subclasse de <code>JRadioButton<\/code> que t\u00e9 la propietat <code>selected<\/code> bound.<\/td>\n<\/tr>\n<tr>\n<td><strong>BoundJTextField<\/strong><\/td>\n<td>Subclasse de <code>JTextField<\/code> que t\u00e9 la propietat <code>text<\/code> bound.<\/td>\n<\/tr>\n<tr>\n<td><strong>BoundJTextArea<\/strong><\/td>\n<td>Subclasse de <code>JTextArea<\/code> que t\u00e9 la propietat <code>text<\/code> bound.<\/td>\n<\/tr>\n<tr>\n<td><strong>BoundJTree<\/strong><\/td>\n<td>Subclasse de <code>JTree<\/code> al que afegeix dues propietats bound: <code>selectedNode<\/code> i<code>selectedObject<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><strong>EnhancedJTextField<\/strong><\/td>\n<td>Subclasse de <code>BoundJTextField<\/code> que afegeix les seg\u00fcents utilitats:<\/p>\n<ul>\n<li>Permet determinar el nombre m\u00e0xim de car\u00e0cters que es poden teclejar en aquest camp<\/li>\n<li>Permet determinar el conjunt de car\u00e0cters admissibles en aquest camp (p.e. especificant &#8220;abc123&#8221;, no deixar\u00e0 escriure &#8216;z&#8217; ni &#8216;4&#8217;, ni &#8216;?&#8217;, etc. )<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td><strong>ObjectJTextField<\/strong><\/td>\n<td>Subclasse de <code>BoundJTextField<\/code> que representa un objecte. El camp emmagatzema l&#8217;objecte i el representa basant-se en el que torni el m\u00e8tode<code>toString()<\/code> de l&#8217;objecte.<\/td>\n<\/tr>\n<tr>\n<td><strong>RecallableJTextField<\/strong><\/td>\n<td>Subclasse de <code>EnhancedJTextField<\/code> que permet recuperar, emprant les fletxes d&#8217;amunt i avall, els valors entrats al camp. Per afegir un valor a la llista, nom\u00e9s cal polsar <code>intro<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><strong>MaskedTextField<\/strong><\/td>\n<td>Subclasse de <code>BoundJTextField<\/code> que proporciona la possibilitat d&#8217;emprar m\u00e0scares. Funciona amb Java 1.2, 1.3 i 1.4<\/td>\n<\/tr>\n<tr>\n<td><strong>MoneyJFormattedTextField<\/strong><\/td>\n<td>Subclasse de <code>JFormattedTextField<\/code> que facilita l&#8217;entrada de n\u00fameros que es representaran com a moneda.<br \/>\nQuan estem editant, podem emprar sense problemes el teclat num\u00e8ric utilitzant el punt com a coma decimal. En sortir del camp, la xifra teclejada es presentar\u00e0 en format de moneda (p.e. teclegem &#8220;1234.23&#8221; i es veur\u00e0 &#8220;1.234,23 \u20ac&#8221;)<\/td>\n<\/tr>\n<tr>\n<td><strong>MultiKeySelection<\/strong><\/td>\n<td>\u00c9s un <em>widget<\/em> no visual que millora les capacitats de selecci\u00f3 del <code>JComboBox<\/code>permetent la selecci\u00f3 d&#8217;un \u00edtem teclejant els <em>n<\/em> primers car\u00e0cters (no nom\u00e9s el primer!). El criteri de selecci\u00f3 \u00e9s &#8220;astut&#8221; i no t\u00e9 en compte ni accents ni maj\u00fascules i min\u00fascules.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si b\u00e9 Swing ens proporciona un conjunt important de components, a l&#8217;hora de desenvolupar interf\u00edcies d&#8217;usuari, m&#8217;he trobat amb algunes mancances i algunes incomoditats. Durant els projectes que he desenvolupat amb interf\u00edcies d&#8217;usuari Swing, he hagut d&#8217;anar cobrint aquestes mancances i he hagut de fer-me la vida m\u00e9s f\u00e0cil per tal de poder lliurar els [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/full-width.php","meta":{"footnotes":""},"class_list":["post-124","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.froses.com\/index.php\/wp-json\/wp\/v2\/pages\/124","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.froses.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.froses.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.froses.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.froses.com\/index.php\/wp-json\/wp\/v2\/comments?post=124"}],"version-history":[{"count":6,"href":"https:\/\/www.froses.com\/index.php\/wp-json\/wp\/v2\/pages\/124\/revisions"}],"predecessor-version":[{"id":384,"href":"https:\/\/www.froses.com\/index.php\/wp-json\/wp\/v2\/pages\/124\/revisions\/384"}],"wp:attachment":[{"href":"https:\/\/www.froses.com\/index.php\/wp-json\/wp\/v2\/media?parent=124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}