{"id":178,"date":"2012-09-11T03:15:26","date_gmt":"2012-09-11T03:15:26","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/rpenafie\/?p=178"},"modified":"2014-11-27T05:33:52","modified_gmt":"2014-11-27T05:33:52","slug":"swt-standard-widget-toolkit","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/rpenafie\/2012\/09\/11\/swt-standard-widget-toolkit\/","title":{"rendered":"SWT Standard Widget Toolkit"},"content":{"rendered":"<p>SWT es el nombre del un conjunto de componentes de interaccion lo que hace que muchos lo definan como Framework desarrollado por un grupo de personas al frente del proyecto Eclipse pero ellos lo definen mas bien como una API (Interfaz de Programacion de Aplicaciones).<\/p>\n<p><strong><\/strong>Esta API representa la tercera generaci\u00f3n de herramientas para crear interfaces en Java que mejora los anteriores de primera y segunda generaci\u00f3n de Sun (AWT y Swing, respectivamente) a pesar de tratar de volver a la idea original de AWT (Abstract Window Toolkit) de volver a utilizar una simple envoltura de elementos u objetos\u00a0 del mismo sistema operativo con Java nativo, dejando a un lado las practicas de Swing que simplemente dibujaba objetos nuevos totalmente nativos de Java apoyandose con la API 2D.<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/HelloWorld1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-181\" src=\"http:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/HelloWorld1-300x238.jpg\" alt=\"\" width=\"300\" height=\"238\" srcset=\"https:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/HelloWorld1-300x238.jpg 300w, https:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/HelloWorld1.jpg 649w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Debemos a\u00f1adir que tiene una gran dependencia (a nivel de aspecto visual y no de interfaz de programaci\u00f3n) de la aplicaci\u00f3n resultante del sistema de operaci\u00f3n sobre el cual se ejecuta.<\/p>\n<p>Este es un ejemplo de la misma aplicacion ejecutada en mi computadora con Windows XP:<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/helloWorldxp.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-182\" src=\"http:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/helloWorldxp-300x199.jpg\" alt=\"\" width=\"300\" height=\"199\" srcset=\"https:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/helloWorldxp-300x199.jpg 300w, https:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/helloWorldxp.jpg 601w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Cada\u00a0 plataforma \u00a0tiene su propia versi\u00f3n de swt.jar as\u00ed como al menos un objeto nativo compartida. En Windows esto es una dll., Si este c\u00f3digo nativo no est\u00e1 disponible para un sistema operativo, entonces no puede ser \u00a0utilizado SWT en esa plataforma \u00a0La buena noticia es que los componentes SWT nativas han sido escritos para la mayor\u00eda de los sistemas operativos.<\/p>\n<p>El proyecto DWT tambi\u00e9n tiene un paquete de complemento que contiene un puerto de JFace formas y Eclipse. el proyecto es compatible con Windows 32-bit y Linux GTK 32-bit para SWT-3.4.<\/p>\n<p><strong>Caracteristicas:<\/strong><\/p>\n<p>Layouts: Permite establecer la pol\u00edtica de visualizaci\u00f3n de los elementos dentro de un contenedor.<\/p>\n<p>Sit\u00faa elementos en filas y columnas, conforme se a\u00f1aden elementos se sit\u00faan en fila o columna (seg\u00fan el tipo de RowLayout elegido), cuando llega al final del contenedor pasa a la siguiente fila o columna.<\/p>\n<p>La anchura y la altura de los elementos en el layout se pueden controlar utilizando objetos RowData, los cuales son asignados a los elementos utilizando el m\u00e9todo setLayoutData().<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/rowlayout.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-193\" src=\"http:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/rowlayout-300x232.jpg\" alt=\"\" width=\"300\" height=\"232\" srcset=\"https:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/rowlayout-300x232.jpg 300w, https:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/rowlayout.jpg 450w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>La interfaz de eclipse tambi\u00e9n depende de una capa intermedia de Interfaz Grafica de Usuario (GUI) llamada <em>JFace<\/em> que simplifica la construcci\u00f3n de aplicaciones basadas en SWT.<\/p>\n<p><strong>JFace<\/strong>\u00a0es un conjunto de widgets\u00a0para realizar interfaces de usuario construido sobre SWT. Fue desarrollado por IBMpara facilitar la construcci\u00f3n del entorno de<a title=\"Entorno de desarrollo\" href=\"http:\/\/es.wikipedia.org\/wiki\/Entorno_de_desarrollo\">\u00a0<\/a>desarrollo de eclipse, pero su uso no est\u00e1 limitado a \u00e9ste siendo muy factible de utilizar en Netbeans como compilarlo en procesador de palabras.<\/p>\n<p>La interacci\u00f3n entre la GUI y el sistema operativo est\u00e1 dirigida por eventos (los generados por interacci\u00f3n con los elementos de la GUI). El thread de la GUI (el que crea el Display) es el \u00fanico que puede crear o modificar elementos de control. Si lo hace otro thread, se lanza la excepci\u00f3n SWTException. El thread de la GUI permanece a la espera de la llegada de eventos, los atiende y vuelve de nuevo a situaci\u00f3n de espera.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/eventos2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-187\" src=\"http:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/eventos2-300x203.jpg\" alt=\"\" width=\"300\" height=\"203\" srcset=\"https:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/eventos2-300x203.jpg 300w, https:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/eventos2.jpg 550w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Hay una cierta actividad para permitir la combinaci\u00f3n de oscilaci\u00f3n y SWT. Hay dos enfoques diferentes que se trataron:<\/p>\n<ul>\n<li><em>SwingWT<\/em> es un proyecto que tiene la intenci\u00f3n de proporcionar a los desarrolladores una aplicaci\u00f3n Swing con swing alternativa: una que utiliza un back-end SWT para mostrar sus widgets, proporcionando as\u00ed el aspecto nativo y ventajas de rendimiento de SWT junto con el modelo de programaci\u00f3n que Swing.<\/li>\n<li><em>SWTSwing<\/em> es un proyecto que tiene la intenci\u00f3n de proporcionar un back-end Columpios de SWT. En efecto, SWT se podr\u00eda ejecutar con \"objetos de Swing nativos\" en lugar de, por ejemplo, GTK o Windows objetos nativos. Esto permitir\u00eda SWT para trabajar en todas las plataformas que Swing soporta.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/SWT.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-192\" src=\"http:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/SWT-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/SWT-300x225.jpg 300w, https:\/\/blog.espol.edu.ec\/rpenafie\/files\/2012\/09\/SWT.jpg 837w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SWT es el nombre del un conjunto de componentes de interaccion lo que hace que muchos lo definan como Framework desarrollado por un grupo de personas al frente del proyecto Eclipse pero ellos lo definen mas bien como una API (Interfaz de Programacion de Aplicaciones). Esta API representa la tercera generaci\u00f3n de herramientas para crear [&hellip;]<\/p>\n","protected":false},"author":4692,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21025,377],"tags":[],"class_list":["post-178","post","type-post","status-publish","format-standard","hentry","category-deberes-de-la-universidad","category-internet"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/rpenafie\/wp-json\/wp\/v2\/posts\/178","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/rpenafie\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/rpenafie\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/rpenafie\/wp-json\/wp\/v2\/users\/4692"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/rpenafie\/wp-json\/wp\/v2\/comments?post=178"}],"version-history":[{"count":11,"href":"https:\/\/blog.espol.edu.ec\/rpenafie\/wp-json\/wp\/v2\/posts\/178\/revisions"}],"predecessor-version":[{"id":197,"href":"https:\/\/blog.espol.edu.ec\/rpenafie\/wp-json\/wp\/v2\/posts\/178\/revisions\/197"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/rpenafie\/wp-json\/wp\/v2\/media?parent=178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/rpenafie\/wp-json\/wp\/v2\/categories?post=178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/rpenafie\/wp-json\/wp\/v2\/tags?post=178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}