clase 01 - programacion javafx 2
TRANSCRIPT
![Page 1: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/1.jpg)
PROGRAMACIÓN JAVAFX 2.0INTRODUCCIÓN
Claudio Carmona C.
![Page 2: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/2.jpg)
Contenidos
RoadMap de JavaFX 2.0 Descarga de aplicaciones y APIs Introducción al lenguaje Creación de una Interfaz Simple de
Usuario
![Page 3: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/3.jpg)
RoadMap de JavaFX 2.0
En 2005, Sun Microsystems adquiere la compañía SeeBeyond donde trabaja el ingeniero de software Chris Oliver creador de un lenguaje script rico en gráficos llamado F3 (Form Follows Function)
James Gosling (Sun) junto a Chris Oliver
![Page 4: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/4.jpg)
RoadMap de JavaFX 2.0
import f3.ui.canvas.\*;
import f3.ui.\*; Canvas {
content: Rect { x: 20 y: 20 height: 80 width: 300 arcHeight: 20 arcWidth: 20 fill: cyan stroke: purple strokeWidth: 2
} }
Ejemplo F3
![Page 5: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/5.jpg)
RoadMap de JavaFX 2.0
En JavaOne 2007 Sun presento F3 como JavaFX
El 20 de abril 2009 Oracle anuncia la compra de Sun
![Page 6: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/6.jpg)
RoadMap de JavaFX 2.0
En JavaOne 2010 Oracle muestra el RoadMap de JavaFX que incluye el plan de Oracle para la fase de salida del lenguaje de script JavaFX y la re-creación de JavaFX para el lenguaje y la plataforma Java
JavaFX 2.0 SDK fue liberado en JavaOne el 3 de octubre de 2011
JavaFX SDK 1.3 fue liberado en abril de 2010, la versión 1.3.1 fue la última versión en ser liberada (Q.E.P.D.)
![Page 7: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/7.jpg)
RoadMap de JavaFX 2.0
![Page 8: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/8.jpg)
RoadMap de JavaFX 2.0
En JavaOne 2010 JavaFX 2.0 fue anunciado y los detalles son los siguientes:
JavaFX Script Language fue deprecado a favor de la API JavaFX 2.0 (Java, Groovy y JRuby)
Hacer las características atractivas de JavaFX Script Language como binding to expressions disponibles en la API JavaFX 2.0
Ofrecer un conjunto incrementado de componentes UI ricos a la API JavaFX 2.0
![Page 9: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/9.jpg)
RoadMap de JavaFX 2.0
Proveer componentes Web para embeber HTML y JavaScript en aplicaciones JavaFX 2.0
Habilitar la interacción de JavaFX 2.0 con Swing
Reescribir la pila de multimedia desde la base
![Page 10: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/10.jpg)
RoadMap de JavaFX 2.0
La arquitectura de JavaFX 2.0 consiste en: APIs públicas Scene Graph Quantum Toolkit Prism Glass Windowing Toolkit Media y Web Engines Java 2D/OpenGL/D3D JVM
![Page 11: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/11.jpg)
RoadMap de JavaFX 2.0
![Page 12: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/12.jpg)
RoadMap de JavaFX 2.0
![Page 13: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/13.jpg)
RoadMap de JavaFX 2.0
El objetivo de JavaFX 2.0 es ser usado a través de muchos tipos de dispositivos; dispositivos móviles, Smartphones, TVs, Tablets y Desktops.
![Page 14: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/14.jpg)
Requerimientos
JDK 7 + JavaFX 2 (x86)http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1637583.html
NetBeans 7http://netbeans.org/downloads/index.html
Documentaciónhttp://docs.oracle.com/javafx/
![Page 15: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/15.jpg)
JavaFX 2.0 en NetBeans 7.2
![Page 16: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/16.jpg)
JavaFX 2.0 en NetBeans 7.2
![Page 17: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/17.jpg)
JavaFX 2.0 en NetBeans 7.2
![Page 18: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/18.jpg)
Ciclo de vida JavaFX 2.0
El punto de entrada para las aplicaciones JavaFX 2.0 es la clase Application. En tiempo de ejecución JavaFX realiza en orden lo siguiente:
Construye una instancia de la aplicación especifica
Llama al método init() Llama al método
start(javafx.stage.Stage)
![Page 19: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/19.jpg)
Ciclo de vida JavaFX 2.0
Espera que la aplicación finalice, lo que ocurre cuando se cierra la ventana o cuando la aplicación llama a Platform.exit()
Llama al método stop()
Notas: El método start es abstracto y debe ser
overridden Los métodos init() y stop() están
implementados
![Page 20: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/20.jpg)
Elementos de la Interfaz Simple
La aplicación base de JavaFX 2.0 es Application:public abstract class Application extends java.lang.Object
Las aplicaciones deben extender a javafx.application.Application
http://docs.oracle.com/javafx/2/api/javafx/application/Application.html
![Page 21: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/21.jpg)
Métodos de Application
Modificador y Tipo
Método Descripción
HostServices getHostServices() Obtiene los HostServices para la aplicación
Application.Parameters
getParameters() Recupera los parámetros para la aplicación
void init() Método de inicialización de la aplicación
static void launch(java.lang.Class<? extends Application> appClass, java.lang.String... args)
Lanza aplicación independiente (standalone)
static void launch(java.lang.String... args)
Lanza aplicación independiente (standalone)
void notifyPreloader(Preloader.PreloaderNotification info)
Notifica al precargador con una notificación generada en la aplicación
abstract void start(Stage primaryStage) Punto principal de entrada para todas las aplicaciones JavaFX
void stop() Método llamado cuando la aplicación debería detenerse. Provee un lugar conveniente para preparar la aplicación para salir y destruir los recursos asociados.
![Page 22: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/22.jpg)
Método start()
JavaFX crea un Thread de aplicación para ejecutar el método start
La creación de los objetos Scene y Stage, así como la modificación de operaciones del gráfico de scene para los objetos que están «vivos« (todos los objetos vinculados a una scene) debe realizarse en el thread de aplicación JavaFX
El constructor de la aplicación y el método init son llamados en el launcher thread, no en el thread de aplicación JavaFX
![Page 23: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/23.jpg)
Clase Stage
public class Stage extends Window La clase Stage es el nivel superior de JavaFX
en contenedores El stage primario es construido por la
plataforma Objetos stage adicionales pueden ser
construidos por la aplicación Los objetos stage deben ser construidos y
modificados en el thread de aplicación JavaFX
http://docs.oracle.com/javafx/2/api/javafx/stage/Stage.html
![Page 24: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/24.jpg)
Clase Scene
@DefaultProperty(value="root") public class Scene extends java.lang.Object implements EventTarget La clase Scene es el contenedor para todo el
contenido de un gráfico scene El tamaño de scene debe ser inicializado por
la aplicación durante la construcción Los objetos scene deben ser construidos y
modificados en el thread de aplicación JavaFX
http://docs.oracle.com/javafx/2/api/javafx/scene/Scene.html
![Page 25: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/25.jpg)
Clase StackPane
public class StackPane extends Pane StackPane ordena los nodos de acuerdo a
una pila, es decir, el primer nodo en entrar quedará abajo, mientras que el último en entrar quedará arriba
Para distribuir (layout) los nodos se puede usar el constraint alignment. Para cada constraint, stackpane provee un método estático para setear la posición del nodo.
http://docs.oracle.com/javafx/2/api/javafx/scene/layout/StackPane.html
![Page 26: Clase 01 - Programacion Javafx 2](https://reader033.vdocuments.site/reader033/viewer/2022061616/55721112497959fc0b8e44ae/html5/thumbnails/26.jpg)
Clase Button
public class Button extends ButtonBase Button es un control simple de botón El botón puede contener un texto y/o un
gráfico (imagen) Cuando un botón es presionado y liberado
un ActionEvent es enviado Los botones también pueden responder a
mouse events por la implementación de EventHandler para procesar MouseEvent
http://docs.oracle.com/javafx/2/api/javafx/scene/control/Button.html