PROGRAMACIÓN EN AMBIENTES
GRÁFICOS CON ACCESO A DATOS
TEMAS A TRATAR
1 Resumen de la Clase Anterior
2 Interfaces programáticas
3 Interfaces declarativas
4 Patrones de diseño: MVC
5 Historia de JavaFx
6 Arquitectura de JavaFx
GUI BÁSICO: OBJETIVOS
❑ Diferenciar la interfaz programática y declarativa
❑ Comprender los conceptos de Patrón y Patrón de Diseño
❑ Reconocer la importancia del uso de Patrones de Diseños
❑ Comprender la estructura del MVC
❑ Utilizar MVC en el desarrollo de Aplicaciones GUI
❑ Describir la historia de la programación gráfica en JavaFx.
❑ Explicar la estructura de una App en JavaFx
CREACIÓN DE INTERFAZ DE USUARIO (UI) PROGRAMÁTICA vs. DECLARATIVA
La plataforma JavaFx proporciona dos formas complementarias para crear
una interfaz de usuario. Se puede utilizar la API de Java para crear y
completar una interfaz de usuario. Esta es una forma conveniente para los
desarrolladores de Java que acostumbrado a escribir código para
aprovechar las API.
Los diseñadores suelen utilizar herramientas gráficas que les permiten
declarar en lugar de programar una interfaz de usuario. La plataforma
JavaFx define FXML, que es un lenguaje de marcado basado en XML que
se puede utilizar para describir declarativamente una interfaz de
usuario.
CREACIÓN DE INTERFAZ DE USUARIO (UI) PROGRAMÁTICA vs. DECLARATIVA
Además, Gluon pone a disposición una herramienta gráfica llamada Scene
Builder, y esta herramienta es capaz de trabajar con archivos FXML. El uso
de Scene Builder se explicará en la Unidad 3.
Tenga en cuenta que las partes de una interfaz de usuario se pueden
crear usando la API, donde otras partes se pueden crear usando Scene
Builder
Gluon es la empresa responsable del proyecto Scene Builder que es un constructor de interfaces JavaFX
WYSIWYG (acrónimo proveniente de la expresión en inglés What You See Is What You Get)
PATRÓN DE DISEÑO: INTRODUCCIÓN
Por cada problema que se presenta existen distintas formas de resolverlo,
que incluyen soluciones exitosas que ya hemos usado anteriormente en
problemas similares. A mayor experiencia adquirida, las posibilidades para
resolver un problema crece, pero al final siempre habrá una sola solución
que mejor se adapte a nuestra aplicación. Si se documenta esta solución,
se puede reutilizarla y compartir la información aprendida para resolver
de la mejor manera un problema específico.
Los patrones del diseño tratan los problemas del diseño que se repiten y
que se presentan en situaciones particulares del diseño, con el fin de
proponer soluciones a ellas. Por lo tanto, los patrones de diseño son
soluciones exitosas a problemas comunes.
PATRÓN DE DISEÑO: DEFINICIÓN
Consiste en un diagrama de objetos que forma una solución a un
problema conocido y frecuente. El diagrama de objetos está constituido
por un conjunto de objetos descritos por clases y las relaciones que
enlazan los objetos.
Los patrones responden a problemas de diseño de aplicaciones en el
marco de la programación orientada a objetos. Se trata de soluciones
conocidas y probadas cuyo diseño proviene de la experiencia de los
programadores.
PATRÓN DE DISEÑO: GoF
Fue por los años 1994, que apareció el libro "Design Patterns: Elements of
Reusable Object Oriented Sofware" escrito por los ahora famosos Gang of
Four (GoF, que en español es la pandilla de los cuatro) formada por Erich
Gamma, Richard Helm, Ralph Johnson y John Vlissides. Ellos recopilaron y
documentaron 23 patrones de diseño aplicados usualmente por expertos
diseñadores de software orientado a objetos.
El grupo de GoF clasificaron los patrones en 3 grandes categorías basadas
en su propósito: creacionales, estructurales y de comportamiento.
PATRÓN DE DISEÑO: J2EE
Con la aparición del J2EE, todo un nuevo catálogo de patrones de diseño
apareció.
J2EE por ser una arquitectura por si misma que involucra otras
arquitecturas, tiene su propio conjunto de patrones específicos para
diferentes aplicaciones empresariales.
De acuerdo al libro "J2EE PATTERNS Best Practices and Design Strategies",
existen 5 capas en la arquitectura J2EE: Cliente, Presentación, Negocios,
Integración y Recurso
El libro explica 15 patrones J2EE que están divididos en tres de las capas:
presentación, negocios e integración.
MVC: INTRODUCCIÓN
Es un patrón de diseño de software inventado por Xerox PARC para el
lenguaje de programación Smalltalk-80 en la década de 1980 y se ha
utilizado ampliamente. Más tarde se recomendó como el patrón de diseño
de la plataforma Java EE de la compañía Sun de Oracle, y cada vez más lo
aceptan
En el modelo MVC clásico propone la construcción de tres componentes
distintos que son el modelo, la vista y el controlador, es decir, por un lado
define componentes para la representación de la información, y por otro
lado para la interacción del usuario.
El propósito de usar MVC es separar el modelo de negocio y la interfaz de
usuario del código y usar diferentes formas de expresión.
MVC: CONTROLADOR
❑La letra C se refiere al controlador.
❑Es el encargado de controlar y relacionar el modelo con la vista. Genera
respuestas a través de una solicitud, en general dada por el usuario.
❑Cumple la función de solicitar datos al modelo. Dicha solicitud puede
ser de modificar un registro en la base de datos. Estos cambios luego
son comunicados a la vista.
MVC: MODELO
❑La letra M se refiere al modelo de negocio
❑El modelo se encarga de gestionar la información que es enviada por el
controlador. Puede hacer peticiones de consulta, actualización o
búsqueda en la base de datos.
❑Otra función importante del modelo es implementar los privilegios de
acceso, como por ejemplo permisos de usuario, etc.
MVC: VISTA
❑La letra V se refiere a la interfaz
❑Las vistas se encargan de mostrar los datos a través de una interfaz.
Aquí es donde el usuario puede interactuar con nuestra aplicación.
❑Tanto el controlador como los modelos procesan los datos para luego
generar dicha respuesta al usuario, como por ejemplo un clic en el
botón de una ventana de la aplicación
MVC: FUNCIONAMIENTO
MVC EN JAVAFX
Cuando se diseñó JavaFX, se consideró el patrón de diseño MVC. Todo el
marco de la aplicación se desarrolla en torno al patrón de diseño MVC.
JavaFX le permite diseñar con MVC, mediante el uso de FXML y Java.
La implementación se simplifica porque las aplicaciones JavaFX se pueden
ejecutar en una variedad de entornos sin recodificar.
Los tres archivos predeterminados para crear un nuevo proyecto de
efectos son: Main, Controller, Sample.fxml y representan los roles
principales que constituyen las aplicaciones JavaFX.
MVC EN JAVAFX
❑Main.class: Es la entrada del programa, el cuerpo del código suele ser la
ventana de gestión, que realiza la comunicación entre controladores.
❑Vista: Escrito en FXML y contiene controles visuales de la interfaz de
usuario. Si desea realizar el evento de activación de control, debe
asociar un controlador
❑Controlador: Contiene la lógica de la aplicación del programa, es
responsable de la operación del usuario correspondiente y es
responsable de la sincronización de datos entre Vista y Modelo.
❑Modelo: Encapsulamiento de datos
MVC EN JAVAFX
JAVAFX: HISTORIA
JavaFX fue desarrollado originalmente por Chris Oliver en SeeBeyond y se
llamó F3 (Form Follows Function). F3 era un lenguaje de secuencias de
comandos de Java para desarrollar fácilmente aplicaciones GUI. Ofrecía
sintaxis declarativa, estática mecanografía, inferencia de tipos, enlace de
datos, animación, gráficos 2D y componentes Swing. SeeBeyond fue
comprado por Sun Microsystems y F3 pasó a llamarse JavaFX en 2007.
Oracle adquirió Sun Microsystems en 2010 y en 2013 JavaFX es código
abierto.
La primera versión de JavaFX se lanzó en el cuarto trimestre de 2008. El
número de versión saltó de 2.2 a 8.0. Desde Java 8, los números de
versión de Java SE y JavaFX será el mismo y también se lanzarán al mismo
tiempo.
JAVAFX: HISTORIA
A partir de Java SE 8, JavaFX es parte de la Biblioteca de Java SE. Desde
Java 8, no necesita ninguna configuración adicional para compilar y
ejecutar sus programas JavaFX.
Desde 2018 JavaFX 11, actúa como un módulo independiente con su
propio sitio web, ofrece una plataforma de aplicaciones cliente para el
escritorio, los móviles y sistemas embebidos, siendo un entorno de
ejecución disponible como un SDK específico a la plataforma, ya sea
como ficheros jmod o un conjunto de artefactos centrales de Maven.
La versión actual de JavaFX es versión 17.0.
El proyecto JavaFX en sí es de código abierto y es parte del proyecto OpenJDK .
JAVAFX: HISTORIA
Una captura de pantalla de la tonta aplicación JavaFX
compilada escrita por uno de los autores, Jim Weaver
La publicación se muestra en la Figura 1-1, lo que demuestra
que el proyecto había alcanzado de hecho la masa crítica a la
que Tom Ball se refirió.
El proyecto del compilador JavaFX Script alcanzó un punto de inflexión a principios de diciembre de 2007,
que se conmemoró en una publicación de blog titulada "Felicitaciones al equipo del compilador de secuencias
de comandos de JavaFX "El elefante ha atravesado la puerta ". Esa frase provino del líder del proyecto del
compilador JavaFX Script, Tom Ball en una publicación de blog, que contenía el siguiente extracto.
Se me ocurrió una analogía con el elefante cuando recientemente me interrogaron sobre exactamente cuándo
El equipo del compilador de JavaFX Script entregará nuestro primer lanzamiento histórico. "No puedo darte
una fecha exacta ”, dije. “."Es como empujar a un elefante a través de una puerta; hasta una masa crítica
supera el umbral que no sabe cuándo habrá terminado. Una vez que pasas eso umbral, sin embargo, el
resto ocurre rápidamente y de una manera que puede ser más precisa que lo predicho”
JAVAFX: HISTORIA
Fecha Versión Comentario
Q4, 2008 JavaFX 1.0 Fue el lanzamiento inicial de JavaFX. Usó una declaración lenguaje llamado JavaFX Script
para escribir el código JavaFX.
Q1, 2009 JavaFX 1.1 Se introdujo soporte para JavaFX Mobile.
Q2, 2009 JavaFX 1.2
Q2, 2010 JavaFX 1.3
Q3, 2010 JavaFX 1.3.1
Q4, 2011 JavaFX 2.0 Se eliminó la compatibilidad con el script JavaFX. Se Usó Java language para escribir el
código JavaFX. Se abandonó el soporte para JavaFX móvil.
Q2, 2012 JavaFX 2.1 Se introdujo la compatibilidad con Mac OS solo para escritorio.
Q3, 2012 JavaFX 2.2
Q1, 2014 JavaFX 8.0 La versión de JavaFX saltó de 2.2 a 8.0. Las versiones JavaFX y Java SE coincidirán con las de
Java 8.
2018 JavaFX 11 Actúa como un módulo independiente con su propio sitio web
Actual JavaFX 17
Tabla 1-1 contiene una lista de versiones de JavaFX
ARQUITECTURA DE JAVAFX
A continuación se explica la arquitectura completa de la plataforma
JavaFX.
❑ Hay varios componentes integrados que están interconectados entre sí.
❑ JavaFX contiene un amplio conjunto de API que son más que
suficientes para desarrollar aplicaciones enriquecidas que se ejecutan
de forma coherente en muchas plataformas.
ARQUITECTURA DE JAVAFX: DIAGRAMA
and Scene Graphic
Figure 2-1 Diagrama de la Arquitectura en JAVAFX
ARQUITECTURA DE JAVAFX: API PÚBLICA DE JAVAFX
La capa superior de la arquitectura JavaFX que se muestra en la Figura 2-1
de color azul contiene una API pública que proporciona todas las clases
necesarias que son responsables de ejecutar una aplicación JavaFX con
todas las funciones.
La lista de todos los paquetes de esta API es la siguiente.
Nombre del paquete Descripción
javafx.animation Proporciona el conjunto de clases que son responsables de las animaciones
basadas en transiciones.
javafx.application Proporciona métodos del ciclo de vida de la aplicación
javafx.collections Proporciona clases para manejar colecciones y utilidades relacionadas.
javafx.concurrent Proporciona clases para multitarea.
javafx.embed.swing Proporciona el conjunto de clases que se pueden usar dentro del código swing.
ARQUITECTURA DE JAVAFX: API PÚBLICA DE JAVAFX
Nombre del paquete Descripción
javafx.embed.swt Proporciona el conjunto de clases que se pueden usar dentro del código swt.
javafx.event Proporciona las clases que se ocupan de los eventos y su manejo.
javafx.fxml Contiene el conjunto de clases que son responsables de cargar la jerarquía desde el
marcado.
javafx.geometry Proporciona las clases 2D que contienen los métodos para usar geometría 2D en el
objeto.
javafx.scene Proporciona las clases para trabajar con la API de gráficos de escena
javafx.scene.canvas Proporciona el conjunto de clases que se ocupan del lienzo.
javafx.scene.control Contiene las clases de todos los componentes JavaFX.
javafx.scene.effect Contiene el conjunto de clases que aplican los efectos gráficos a los nodos del
gráficos de escena
javafx.scene.image Proporciona el conjunto de clases para cargar y mostrar imágenes.
javafx.scene.input Proporciona el conjunto de clases para los eventos de mouse y teclado.
ARQUITECTURA DE JAVAFX: API PÚBLICA DE JAVAFX
Nombre del paquete Descripción
javafx.scene.layout Proporciona el conjunto de clases para realizar el diseño de la interfaz de usuario.
javafx.scene.media Proporciona el conjunto de clases para integrar audio y video en una aplicación de
JavaFX
javafx.scene.paint Proporciona el conjunto de clases de colores y degradados para rellenar formas y
fondos al renderizar el gráfico de escena
javafx.scene.shape Proporciona el conjunto de clases 2D que realiza las operaciones en objetos
relacionados con la geometría 2D.
javafx.scene.text Proporciona el conjunto de clases para fuentes y renderizado de nodos de texto.
javafx.scene.transform Proporciona el conjunto de clases que se utilizan para realizar operaciones de
rotación, escalado y corte en objetos.
javafx.scene.web Proporciona los medios para cargar y mostrar contenido web.
javafx.stage Proporciona las clases del contenedor de nivel superior para contenido en JavaFX.
javafx.util Proporciona clases de servicios públicos.
javafx.util.converter Este paquete es para convertidores de cadenas estándar en JavaFX
ARQUITECTURA DE JAVAFX: GRÁFICO DE ESCENA
❑Es el punto de partida para construir aplicaciones en JavaFX En la Figura
2-1, se muestra como parte de la capa superior en azul.
❑Es un árbol jerárquico de nodos que representan todos los elementos
visuales de la interfaz de usuario. En general, se puede definir como
una colección de nodos.
❑También tiene la capacidad de manejar eventos
❑Rastrea y maneja cualquier entrada del usuario y se puede renderizar,
ya que es en sí mismo un nodo de interfaz de usuario.
El término renderización (del inglés rendering) es un anglicismo para representación gráfica, usado para
referirse al proceso de generar imagen fotorrealista, o no, a partir de un modelo 2D o 3D (o en lo que
colectivamente podría llamarse un archivo de escena) por medio de programas informáticos.
ARQUITECTURA DE JAVAFX: GRÁFICO DE ESCENA
❑El nodo es cualquier elemento individual en el árbol del gráfico de
escena. Cada nodo tiene estas propiedades por defecto: un ID para
identificación, una lista de clases de estilo para cambiar sus propiedades
visuales y un volumen delimitador para que encaje correctamente en la
escena con otros componentes y dentro de su nodo contenedor de
diseño principal, con la excepción del nodo raíz.
❑Cada nodo en un árbol de escenario gráfico tiene un solo padre, pero
podría tener cero o más hijos; sin embargo, la raíz de la escena no tiene
padre (es nula). Además, JavaFX tiene un mecanismo para garantizar
que un nodo pueda tener un solo padre
ARQUITECTURA DE JAVAFX: GRÁFICO DE ESCENA
Un nodo es un objeto visual / gráfico y podría
incluir:
• Objetos geométricos (gráficos): (2d y 3D) que
incluyen círculo, rectángulo, polígono, etc.
• Controles de la interfaz de usuario, como
Botón, Casilla de verificación, cuadro de
preferencias, región de texto, etc.
• Contenedores: (paneles de diseño) que
incluyen el panel de borde, el panel de
cuadrícula, el panel de flujo, etc.
• Elementos multimedia, como objetos de
imagen, vídeo y audio.
ARQUITECTURA DE JAVAFX: GRÁFICO DE ESCENAS
Un nodo también puede tener lo siguiente:
❑ Efectos visuales, como desenfoques y sombras
❑ Controlar la transparencia de los componentes a través de la opacidad
❑ Transformaciones, transiciones y rotaciones 2D aceleradas por CPU
❑ Transformaciones 3D como transiciones, escalas y rotaciones
❑ Controladores de eventos (como eventos del mouse, eventos clave u
otros métodos de entrada como eventos táctiles)
❑ Un estado específico de la aplicación (posicionamiento y orientación de
los nodos)
Hay varias clases presentes en el paquete javafx.scene que se utilizan para crear, modificar y aplicar algunas
transformaciones en el nodo
ARQUITECTURA DE JAVAFX: MOTOR DE GRÁFICOS
❑El motor de gráficos JavaFX proporciona el soporte gráfico para el
escenario gráfico.
❑Se muestra en morado en la figura anterior y admite gráficos de escena
2D y 3D para que se ejecuten sin problemas en la capa de escena de
gráficos de JavaFX.
❑Como es el detalle de implementación debajo de esta capa,
proporciona la pila de software de renderizado cuando se ejecuta en un
sistema que no tiene suficiente hardware de gráficos para admitir el
renderizado acelerado por hardware.
ARQUITECTURA DE JAVAFX: MOTOR DE GRÁFICOS
Las dos canalizaciones con aceleración de gráficos en JavaFx son:
❑Prisma: este es el motor que procesa todos los trabajos de renderizado.
Puede ejecutarse tanto en procesadores de hardware como de
software, incluido 3D. Este motor se encarga de la rasterización y
renderización de escenas en avaFX. Según el dispositivo que se esté
utilizando, son posibles las siguientes rutas de renderizado: DirectX 9 en
Windows XP y Vista; DirectX 11 en Windows 7 y OpenGL en Linux, Mac
e integrado
❑Kit de herramientas Cuántico: se encarga de vincular el motor Prisma
y el kit de herramientas para ventanas de cristal para que estén
disponibles para las capas que se encuentran sobre ellos en la pila.
ARQUITECTURA DE JAVAFX: MOTOR DE GRÁFICOS
❑El kit de herramientas para ventanas de vidrio, que se muestra en rojo
en la parte central del figura, sirve como la capa dependiente de la
plataforma que conecta la plataforma JavaFX al sistema operativo
nativo.
❑Es responsable de proporcionar los servicios del sistema operativo,
como la gestión de ventanas, temporizadores, colas de eventos y
superficies.
ARQUITECTURA DE JAVAFX: MOTOR DE MEDIOS
❑Las API de JavaFX javafx.scene.media proporcionan funcionalidad
multimedia. JavaFX es compatible con medios visuales y de audio. Para
archivos de audio, admite archivos MP3, AIFF y WAV y archivos de video
FLV.
❑Puede acceder a sus funcionalidades multimedia a través de tres
componentes principales separados proporcionados por JavaFX media:
el objeto Media representa un archivo multimedia, MediaPlayer
reproduce un archivo multimedia y MediaView es un nodo que muestra
los medios en su gráfico de escena.
ARQUITECTURA DE JAVAFX: MOTOR DE MEDIOS
❑El motor de medios, que se muestra en naranja en la figura anterior, se
ha diseñado cuidadosamente teniendo en cuenta la estabilidad y el
rendimiento para proporcionar un comportamiento coherente en todas
las plataformas compatibles.
❑El motor de medios JavaFX depende de un motor de código abierto
llamado G Streamer. El paquete javafx.scene.media contiene todas las
clases e interfaces que pueden proporcionar funcionalidades de medios
a las aplicaciones JavaFX.
ARQUITECTURA DE JAVAFX: COMPONENTE WEB
❑El componente del motor web, que se muestra en verde en la figura
anterior, es uno de los controles de interfaz de usuario de JavaFX más
importantes y se basa en el motor WebKit, que es un motor de
navegador web de código abierto que admite HTML5, JavaScript, CSS,
Representación DOM y gráficos SVG. Proporciona un visor web y
navegación completa. funcionalidad a través de su API.
ARQUITECTURA DE JAVAFX: COMPONENTE WEB
Le permite agregar e implementar las siguientes características en sus
aplicaciones Java:
❑Renderice cualquier contenido HTML desde una URL local o remota
❑Proporcionar navegación hacia atrás y hacia adelante e historial de
asistencia.
❑Vuelva a cargar el contenido para cualquier actualización.
❑Animar y aplicar efectos CSS al componente web.
❑Proporcionar un control de edición enriquecido para contenido HTML
❑Puede ejecutar comandos JavaScript y manejar eventos de control web
ARQUITECTURA DE JAVAFX: COMPONENTES DE DISEÑO
❑Al crear una interfaz de usuario rica y compleja, necesitamos una forma
de permitir disposiciones dinámicas de los controles de la interfaz de
usuario dentro de la aplicación JavaFX. Este es el el mejor lugar para
usar contenedores o paneles Layout.
❑La API de diseño de JavaFX incluye las siguientes clases de contenedor
que automatizan los modelos de diseño comunes:
ARQUITECTURA DE JAVAFX: CONTROLES
❑los controles JavaFX son los componentes básicos del diseño de la
interfaz de usuario y residen en el paquete javafx.scene.control como
un conjunto de API JavaFX. Se construyen utilizando nodos en el
escenario gráfico. Pueden tener un tema y una piel con JavaFX CSS. Son
portátiles en diferentes plataformas. Aprovechan al máximo las
características visualmente ricas de la plataforma JavaFX.
❑Esta figura muestra algunos de los controles de IU que son compatibles
actualmente y hay más que tampoco se muestran aquí.
❑Estos controles residen en el paquete javafx.scene.control.
ARQUITECTURA DE JAVAFX: CONTROLES
Figura 2-3 Ejemplo de controles de la interfaz de usuario de JavaFX
ARQUITECTURA DE JAVAFX: TRANSFORMACIONES 2-D Y 3-D
Cada nodo en el gráfico de escena JavaFX se puede transformar en la
coordenada x-y utilizando las siguientes clases javafx.scene.tranform:
❑ translate: mueve un nodo de un lugar a otro a lo largo de los planos x,
y, z en relación con su posición inicial.
❑escala: cambie el tamaño de un nodo para que parezca más grande o
más pequeño en los planos x, y, z, según el factor de escala.
❑cortante: gira un eje para que el eje xy el eje y ya no sean
perpendiculares. Las coordenadas del nodo se desplazan según los
multiplicadores especificados.
ARQUITECTURA DE JAVAFX: TRANSFORMACIONES 2-D Y 3-D
❑rotar: gira un nodo alrededor de un punto de pivote específico de la
escena.
❑afín: realice un mapeo lineal desde coordenadas 2-D / 3-D a otras
coordenadas 2-D / 3-D mientras conserva las propiedades 'rectas' y
'paralelas' de las líneas. Esta clase debe usarse con las clases de
transformación Trasladar, Escalar, Girar o Cortar en lugar de usarse
directamente.
ARQUITECTURA DE JAVAFX: EFECTOS VISUALES
❑El desarrollo de interfaces de cliente enriquecidas en el gráfico de
escena JavaFX implica el uso de efectos visuales o efectos para mejorar
el aspecto de las aplicaciones JavaFX en tiempo real. Los efectos de
JavaFX se basan principalmente en píxeles de imagen y, por lo tanto,
toman el conjunto de nodos que están en el gráfico de escena, lo
renderizan como una imagen y le aplican los efectos especificados.
❑API para el paquete javafx.scene.effect.
ARQUITECTURA DE JAVAFX: EFECTOS VISUALES
Algunos de los efectos visuales disponibles en JavaFX incluyen el uso de
las siguientes clases:
❑Sombra paralela: genera una sombra de un contenido determinado
detrás del contenido al que se aplica el efecto.
❑Reflejo: genera una versión reflejada del contenido debajo del
contenido real.
❑Iluminación: simula una fuente de luz que brilla sobre un contenido
determinado y puede dar a un objeto plano una apariencia
tridimensional más realista.
ACTIVIDADES ASÍNCRONAS
❑Crear una tabla con el resumen de las versiones de JavaFX
❑Trabajo Autónomo. Investigación: MVP y MVVM
¿Tiene más preguntas sobre la asignatura?
Bibliografía
Sitios Web
❑ https://gluonhq.com/products/javafx/
❑ https://openjfx.io/
❑ http://openjdk.java.net/projects/openjfx/
❑ https://www.oracle.com/java/technologies/javase-jdk16-downloads.html
❑ https://fitorec.wordpress.com/category/informatica-y-computacion/programacion/java/javafx/
❑ https://docs.oracle.com/javase/8/javafx/get-started-tutorial/jfx-architecture.htm#JFXST788
❑ https://www.wisdomjobs.com/e-university/javafx-tutorial-1700/javafx-architecture-22478.html
Libros
❑ Schildt H - Introducing JavaFX 8 Programming
❑ (Oracle Press) Ebbers, Hendrik - Mastering JavaFX 8 Controls-McGraw-Hill Education (2014)
❑ Johan Vos, Stephen Chin, Weiqi Gao, James Weaver, Dean Iverson - Pro JavaFX 9_ A Definitive Guide to
Building Desktop, Mobile, and Embedded Java Clients-Apress (2018)
❑ Kishori Sharan - Learn JavaFX 8_ Building User Experience and Interfaces with Java 8-Apress (2015)
❑ Mohamed Taman - JavaFX Essentials-Packt Publishing (2015)