====== WindowBuilder ====== WindowBuilder es un plugin de código abierto para Eclipse destinado a crear interfaces gráficas de usuario (GUI) de forma rápida y sencilla. Como otros muchos sistemas de este tipo, contiene una paleta de elementos que podemos añadir mediante “drag and drop”, arrastrar y soltar. En lugar de tener que escribir el código a medida que vamos incluyendo elementos gráficos en nuestra ventana, WindowBuilder nos genera el código en nuestras clases. Aunque WindowBuilder sea una herramienta de gran ayuda, necesitamos comprender la estructura con la que WindowBuilder crea clases para poder modificarla y darle un formato a las clases que nos ayude a separar y entender el programa. ===== Instalación de WindowBuilder ===== Para poder descargar WindowBuilder iremos en Eclipse a la pestaña ''Help'' y ahí a ''Eclipse MarketPlace…''. Buscamos el Plugin por su nombre (WindowBuilder) en el campo buscar, y una vez que lo haya encontrado, pulsamos sobre instalar. {{:bloque4:eclipsemarketplace1.png?300 |}} {{ :bloque4:eclipsemarketplace2.png?300 |}} Al terminar la instalación, reiniciamos Eclipse y ya podremos trabajar con él. ===== Crear un proyecto con ventanas ===== WindowBuilder está compuesto de varias herramientas para crear interfaces gráficas de usuario. Nosotros vamos a trabajar únicamente con los componentes [[https://es.wikipedia.org/wiki/Swing_(biblioteca_gr%C3%A1fica)|Swing]]. Para ello usaremos la herramienta Swing Designer de WindowBuilder. A diferencia de otras librerias gráficas, las librerías de ''Swing'' son nativas de Java por lo que son independiente de la plataforma. Aun así hay otras librerías gráficas para java como ''SWT'', ''AWT'', etc. Por convenio, en Java una ''aplicación de escritorio'' empleará un contenedor principal de tipo ''JFrame''. Si además contiene otras ventanas secundarias dentro del programa emplearemos contenedores de tipo ''JDialog'' para estas ventanas secundarias. **Creamos un proyecto** de la misma forma que lo hacemos siempre: {{:bloque4:creaproyecto1.jpg?300 |}} {{ :bloque4:creaproyecto2.jpg?300 |}} **Creamos una clase JFrame** para una ventana. Dentro de nuestro proyecto, en algún ''package'' haremos lo siguiente. Debemos usar los componentes de Swing o de la sección Swing Designer de WindowBuilder: {{:bloque4:creaclase1.jpg?300 |}} {{ :bloque4:creaclase2.jpg?300 |}} ---- También podemos acceder de forma rápida al menú de WindowBuilder mediante su nuevo botón, siempre seleccionando Swing como componentes gráficos: {{:bloque4:creaclase3.png?300 |}} {{ :bloque4:creaclase4.jpg?300 |}} Una vez creada la clase nos aparecerá una nueva vista, desde la cual podemos acceder al código o al diseño a través de las pestañas inferiores. {{:bloque4:pestanadiseno.jpg?300 |}} {{ :bloque4:pestanacodigo.jpg?300 |}} ==== Establecer un Layout en mi ventana ==== Para poder emplazar elementos en una ventana de cualquier tipo debemos indicar una organización (Layout). Si no queremos complicarnos demasiado con un layout podemos trabajar de forma sencilla con **AbsoluteLayout**. Con este Layout podemos emplazar los elementos en el lugar que queramos, aunque no quedará tan bién a la hora de redimensionar la ventana. {{:bloque4:contentpane.png?300 |}} {{ :bloque4:absolutelayout.png?300 |}} Por defecto toda aplicación **JFrame** emplea un JPanel principal de contenido //contentPane//. En el iremos arrastrando todos los elementos que queramos emplear. Para aplicar un layout a nuestra ventana tan solo tenemos que pinchar sobre el layout que queremos usar y pinchar después sobre la ventana. Si queremos aprender el manejo de otros layout podemos acceder a la documentación oficial de Java en Oracle: https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html {{ vimeo>246942867?medium }} ===== Exportar fichero ejecutable con nuestra aplicación ===== {{ :bloque4:exportarjar.png?300|}} Desde el menú File, export… podremos crear un Jar Ejecutable para ejecutar con un doble click nuestra aplicación en cualquier equipo que tenga la máquina virtual de Java (JVM). Para ello necesitamos que el equipo en el que será ejecutado tenga el paquete JRE de Java. Indicaremos //Runnable Jar// , indicaremos la clase que contiene el ''método main'' (si no aparece, bastará con ejecutar la clase main previamente), le daremos nombre al Jar Ejecutable e indicaremos el lugar donde queremos crearlo. La plataforma Java, no necesita un fichero ''exe'' para ejecutar (traducir el código a código máquina) una ventana, porque la ventana en sí (p.e. JFrame) es un componente nativo de Java, y sabe perfectamente como traducirlo. Por último recordar que se debe marcar la opción de empaquetar librerías en el JAR si mi programa incluye otros JAR con librerías. {{ :bloque4:empaquetar_libs_jar.png?300 |}} ---- (c) {{date> %Y}} Fernando Valdeón