Sie sind auf Seite 1von 26

organizado por

[Eje Desarrollo de aplicaciones] JavaFX Script y el resto de la familia


Ezequiel Singer, Campus Ambassador, Sun Microsystems Inc.
Visite la web del evento para acceder a los recursos de las disertaciones www.whyfloss.com/es/conference/buenosaires07

Scripting con Java FX


Ezequiel Fernando Singer
Sun Cam pus Am bas s ador ezequi el . s i nger @s un. com

Agenda
Que es Java FX? Por qu Java FX? 10 minutos de tutorial Java FX Demo! Que hacer/a donde ir

Introduccion: Que es Java FX?


JavaFX es una nueva familia de tecnologas Java que ayudarn a crear rich Internet applications (RIA). JavaFX Script es un lenguaje de scripting altamente productivo que permite a los desarrolladores de contenido crear multimedia y contenido para plataformas en ambientes java. JavaFX Script es un lenguaje de programacion declarativo, tipado estaticamente. Tiene funciones de primer clase, sintaxis declarativa, comprension de listas y evaluacion incremental dependiente. Puede hacer llamadas directas a cualquier API de Java que exista en la plataforma --https://openjfx.dev.java.net/

Introduccion: Que es Java FX?


Java FX Player : el software de RunTime requerido para correr aplicaciones JavaFX (presente en JRE 1.6.0) JavaFX Mobile : un sistema completo (SO y ambiente de aplicacion) construido con Java, Linux y otras tecnologas open source

Arquitectura JavaFX mobile

Arquitectura JavaFX Mobile

JavaFX, la nueva tecnologa en interfaces grficas

JAVAFX Mobile Sistema integro

Una implementacin GPL


http://www.linuxdevices.com/news/NS7539760574.html

Por qu Java FX?


Escribir GUIs es dificil (y molesto)
> si, Matisse ayuda un poco, pero... > Todavia hay demasiados listeners.

Por que Java FX?


Escribir GUIs es dificil (y molesto)
> si, Matisse ayuda un poco, pero... > Todavia hay demasiados listeners.

GUIs por default son feas


> Una herencia de cajas grises rectangulares (no solo en Java) > No tan pirotecnicas como los websites FLASH

Por que Java FX?


Escribir GUIs es dificil (y molesto)
> si, Matisse ayuda un poco, pero... > Todavia hay demasiados listeners.

GUIs por default son feas


> Una herencia de cajas grises rectangulares (no solo en Java) > No tan pirotecnicas como los websites FLASH

Java 2D provee mucho de lo que se necesita, pero...


> Es complicado de usar para este propsito > No tiene un comportamiento composicional

La sintaxis declarativa de Java FX's, combina los widgets Swing tipicos con la funcionalidad composicional de Java 2D, logrando que escribir interfaces grficas sea facil, y con mejores resultados

Java FX: Tutorial de 10 minutos


class HelloWorldModel { attribute saying: String; } var model = HelloWorldModel { saying: "Hello World" }; var win = Frame { title: bind "{model.saying} JavaFX" width: 200 content: TextField { value: bind model.saying } visible: true };

Definicion de una clase, con un unico atributo String Instancia de la clase, model que iniciailiza el string Frame con un campo de texto. Tanto el titulo del frame, como el campo estan ligados al valor de la variable

Java FX: Tutorial de 10 minutos


import java.lang.StringIndexOutOfBoundsException; operation substring(s:String, n:Number): String { operaciones try { return s.substring(n); } catch (e:StringIndexOutOfBoundsException) { throw sorry, index out of bounds; } }

Definiendo

Llamando a mtodo Java Se puede lanzar cualquier tipo de objeto

Java FX: Tutorial de 10 minutos


var x = [1,2,3]; insert 10 into x; insert 12 before x[1]; delete x[. == 12]; delete x[. >= 3]; insert 5 after x[. == 1]; insert 13 as first into x; delete x;

Array Initialization yields [1, 2, 3, 10] yields [1, 12, 2, 3, 10] yields [1, 2, 3, 10] yields [1, 2] yields [1, 5, 2] yields [13, 1, 5, 2] yields []

function factors(n) { return select i from i in [1..n/2] where n % i == 0; }

Database-like Queries para vectores!

Java FX: Tutorial de 10 minutos


class X { attribute nums: Number*; } trigger on new X { insert [3,4] into this.nums; }

Evento de creacion Evento al insertar en vector Evento al cambiar valor

trigger on insert num into X.nums { System.out.println("just inserted {num} into X.nums at position {indexof num}"); } trigger on X.num[oldValue] = newValue { System.out.println("X.num: just replaced {oldValue} with {newValue}"); }

Java FX: Tutorial de 10 minutos


import javafx.ui.canvas.*; import javafx.ui.*; Canvas { content: Group { transform: [rotate(20,0,0)] content: [Rect { x: 20 y: 20 height: 80 width: 300 ... }, Ellipse { cx: 150 cy: 80 ... }, }] } }

Canvas para dibujar Agrupamiento de controles Grupo transformadas Declaracion de grfico 2D

Java FX: Tutorial de 10 minutos


Como ejecutar cdigo JavaFX
> Corriendolo como Java Web Start > Ejecutando desde un programa Java normal:

Java FX: Tutorial de 10 minutos

Java Web Start es la implementacin de referencia de la especificacin JNLP

(Java Networking Launching Protocol)

permite arrancar aplicaciones Java que estn en un servidor web de

aplicaciones comprobando previamente si el cliente tiene la versin actualizada de dicha aplicacin (JRE). Si no es as descargar la ltima versin y se ejecutar en local.

El arranque de dichas aplicaciones puede ser efectuado mediante enlaces en

una pgina web o bien a travs de enlaces en el escritorio cliente.

Se asegura que una aplicacin es distribuida siempre en su ltima versin.

Java FX: Tutorial de 10 minutos


import java.io.InputStreamReader; import java.util.Date; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public class FxScriptLauncher2 { public static void main(String[] args) { try { // set up script: ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByExtension("fx"); engine.put("now:java.util.Date", new Date());
InputStreamReader reader = new InputStreamReader(FxScriptLauncher2.class.getResourceAsStream("HelloWorld.fx")); engine.eval(reader); } catch (Exception e) { e.printStackTrace(); } }

demo

Java FX

Que Hacer

Bajarse Java FX & IDE Plugins para Netbeans o Eclipse Unirse a projectos en OpenJFX Java.net Hacer Java FX Tutorials Participar en Java FX Forums Crear algo cool!

http://openjfx.dev.java.net

Recursos Java FX
Java FX Project Site: http://openjfx.dev.java.net
> Java.net: Download early versions of Java FX > IDE Plugins, Tutorials, Forums, FAQs > Getting Started With the JavaFX Script Language > JavaFX Script 2D Graphics Tutorial > The JavaFX Script Programming Language Reference

Planet FX Wiki: http://jfx.wikia.com/wiki/Main_Page


> Open-source documentation site for Java FX

Chris Oliver's Blog: http://blogs.sun.com/chrisoliver/


> Latest news, other informal information > Source code for lots of demos (Space Invaders, Calculator)

Sun's Java FX Site: http://www.sun.com/software/javafx/


> Sun Microsystems official product page

Fast Track Your Career with Sun!


Get FREE Web-based training on JavaTM, SolarisTM & more!
> Visit: http://www.sunacademic.com > Course registration code for ABC University is XYZ

Increase earnings potential with a Sun Certification!


> Sun Certified Associate/Programmer for the Java 2 Platform SE > Sun Certified Web Component Developer for Java EE > Sun Certified Mobile Application Developer for Java ME > Sun Certified System/Network Admin for Solaris Operating System

Free practice exams Discounted exams fees for academic developers only US$60 (US$40 in APAC and Latin America)

Scripting con Java FX


http://openjfx.dev.java.net

Gracias !!!

Ezequiel Fernando Singer Sun Campus Ambassador ezequiel.singer@sun.com blogs.sun.com/argentina_ambassador

Das könnte Ihnen auch gefallen