{"id":108,"date":"2012-09-08T22:47:24","date_gmt":"2012-09-09T03:47:24","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/dennys\/?p=108"},"modified":"2012-09-08T22:49:30","modified_gmt":"2012-09-09T03:49:30","slug":"swt-standard-widget-toolkit","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/dennys\/2012\/09\/08\/swt-standard-widget-toolkit\/","title":{"rendered":"SWT Standard Widget Toolkit"},"content":{"rendered":"<p><em>Empecemos hablando de SWT de sus siglas en ingles Standard Widget Toolkit se trata de una biblioteca de interfaz de usuario en la que puede construir interfaces graficas en java conocido como widgets, antes de profundizarnos con el tema para entender mejor cuando hablamos de widgets nos referimos a un componente de interfaz grafica como por ejemplo un bot\u00f3n, scrollbars, checkbox, listBox, etc. , sin embargo gracias al API que ofrece SWT se pueden realizar GUIs\u00a0 portables muy ligadas a la interfaz gr\u00e1fica de cada sistema operativo, esto quiere decir que un mismo c\u00f3digo tendr\u00e1 un\u00a0 aspecto distinto si corre sobre Windows que sobre Linux.<\/em><\/p>\n<p><em>Swt utiliza los widgets nativos de la plataforma cuando sea posible. Estos widgets nativos del sistema operativo se accede por el marco a trav\u00e9s del marco SWT de Java Native Interface; el JNI (Java Native Interface) es un marco de programacion que permite que el c\u00f3digo de Java que se ejecuta en una maquina virtual Java permite llamar y ser llamados por las aplicaciones nativas y bibliotecas escritas en otros lenguajes y ensamblador. Swt soporta plataforma tales como Windows, Linux, Mac OS X, a todo esto el objetivo del dise\u00f1o SWT es permanecer cerca del sistema operativo, por lo que la API de SWT esta muy cerca de la API nativa del sistema operativo. Si ud es un programador que le gusta desarrollar aplicaciones con Eclipse entonces tiene que utilizar el IDE Workbench que utiliza un procesador de SWT.<\/em><\/p>\n<p><em>Gracias a SWT y con un poco de configuraci\u00f3n podremos hacer interfaces en java sin preocuparnos del sistema operativo en el que correr\u00e1.<\/em><\/p>\n<p><em>Primero nosotros debemos ver si tenemos instalados el plugins SWT de no ser asi tenemos que ir a la pagina web <a href=\"http:\/\/www.eclipse.org\/swt\">http:\/\/www.eclipse.org\/swt<\/a><\/em><\/p>\n<p><em>1.- \u00a0abrimos eclipse a creamos un nuevo proyecto.<\/em><\/p>\n<p style=\"text-align: center\"><a href=\"http:\/\/blog.espol.edu.ec\/dennys\/files\/2012\/09\/java1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-109 aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/dennys\/files\/2012\/09\/java1-300x264.png\" alt=\"\" width=\"228\" height=\"201\" srcset=\"https:\/\/blog.espol.edu.ec\/dennys\/files\/2012\/09\/java1-300x264.png 300w, https:\/\/blog.espol.edu.ec\/dennys\/files\/2012\/09\/java1.png 525w\" sizes=\"auto, (max-width: 228px) 100vw, 228px\" \/><\/a><\/p>\n<p><em>2.- una vez creado el proyecto, vamos a crear un package en el proyecto que acabamos de hacer, para ello click con el bot\u00f3n derecho sobre el nombre del proyecto en el\u00a0 Package Explorer: NEW -&gt; PACKAGE. Y esto debemos tener mas o menos en el lado izquierdo de nuestra pantalla un \u00e1rbol asi. En el que tenemos como nombre de proyecto TestSwt, nombre del paquete com, la clase HelloWorld, y la librer\u00eda JRE.<\/em><\/p>\n<p style=\"text-align: center\"><a href=\"http:\/\/blog.espol.edu.ec\/dennys\/files\/2012\/09\/java2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-110 aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/dennys\/files\/2012\/09\/java2-300x189.png\" alt=\"\" width=\"231\" height=\"145\" srcset=\"https:\/\/blog.espol.edu.ec\/dennys\/files\/2012\/09\/java2-300x189.png 300w, https:\/\/blog.espol.edu.ec\/dennys\/files\/2012\/09\/java2.png 453w\" sizes=\"auto, (max-width: 231px) 100vw, 231px\" \/><\/a><\/p>\n<p><em>3.- debemos a\u00f1adir al proyecto las librer\u00edas swt necesarias: org.eclipse.swt_3.1.0.jar y org.eclipse.swt.gtk.linux.x86_3,1,0.jar.<\/em><\/p>\n<p style=\"text-align: center\"><a href=\"http:\/\/blog.espol.edu.ec\/dennys\/files\/2012\/09\/java3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-111 aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/dennys\/files\/2012\/09\/java3-300x249.png\" alt=\"\" width=\"213\" height=\"176\" srcset=\"https:\/\/blog.espol.edu.ec\/dennys\/files\/2012\/09\/java3-300x249.png 300w, https:\/\/blog.espol.edu.ec\/dennys\/files\/2012\/09\/java3.png 668w\" sizes=\"auto, (max-width: 213px) 100vw, 213px\" \/><\/a><\/p>\n<p><strong>C\u00f3digo: <\/strong><\/p>\n<p><strong>import org.eclipse.swt.*;<\/strong><\/p>\n<p><strong>import org.eclipse.swt.widgets.*;<\/strong><\/p>\n<p><strong>import org.eclipse.swt.layout.*;<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><strong>public static void main(String[] args) {<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Display display = new Display();<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Shell shell = new Shell(display);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 shell.setText(\"HelloWorld\");<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 FillLayout layout = new FillLayout();<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 layout.type = SWT.VERTICAL;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 shell.setLayout(layout);<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Label label = new Label(shell, SWT.CENTER);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 label.setText(\"Hola Mundo\");<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 shell.open();<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 while (!shell.isDisposed())<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if (!display.readAndDispatch()) display.sleep();<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }<\/strong><\/p>\n<p><strong><em>Fuente:<\/em><\/strong><\/p>\n<p><a href=\"http:\/\/www.vogella.com\/articles\/SWT\/article.html\">http:\/\/www.vogella.com\/articles\/SWT\/article.html<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Empecemos hablando de SWT de sus siglas en ingles Standard Widget Toolkit se trata de una biblioteca de interfaz de usuario en la que puede construir interfaces graficas en java conocido como widgets, antes de profundizarnos con el tema para entender mejor cuando hablamos de widgets nos referimos a un componente de interfaz grafica como [&hellip;]<\/p>\n","protected":false},"author":1197,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-108","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/dennys\/wp-json\/wp\/v2\/posts\/108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/dennys\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/dennys\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/dennys\/wp-json\/wp\/v2\/users\/1197"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/dennys\/wp-json\/wp\/v2\/comments?post=108"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/dennys\/wp-json\/wp\/v2\/posts\/108\/revisions"}],"predecessor-version":[{"id":113,"href":"https:\/\/blog.espol.edu.ec\/dennys\/wp-json\/wp\/v2\/posts\/108\/revisions\/113"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/dennys\/wp-json\/wp\/v2\/media?parent=108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/dennys\/wp-json\/wp\/v2\/categories?post=108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/dennys\/wp-json\/wp\/v2\/tags?post=108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}