JavaFXClodoaldo Brasilino Leite Netoclodbrasilino@gmail.com
O que é JavaFX?
O que é JavaFX?
A Plataforma JavaFX
A Plataforma JavaFXUma família de tecnologiasJavaFXRuntimeJavaFX ScriptJavaFXToolsPara quem?DesignersDesenvolvedores
JavaFX,Flex ou Silverlight?
Java, Flash ou .Net?
Sun, Adobe ou Microsoft?
Temos Flex e Silverlight... Por que JavaFX?
Por que JavaFX?Uma única plataforma RIA para todas as telasMercado de amplo alcanceFluxo de trabalho designer-desenvolvedorRuntime poderosoLiberdade do browserCompatibilidade com tecnologias Java
Exemplos de Aplicação JavaFX
Exemplos de Aplicação JavaFX
Por onde começar?
Sites básicosJavaFXhttp://javafx.com/JavaFXDeveloperHomehttp://java.sun.com/javafx/JavaFXPrograming(withPassion!)http://www.javapassion.com/javafx/Raphael Marques – Meu tutor! http://raphaelmarques.wordpress.com/
Ferramentas AtuaisWindows, Linux, Mac OS X e Solarisx86JavaFX 1.2 SDKNetbeansIDE 6.5.1 para JavaFX 1.2JavaFX 1.2 ProductionSuitePlugin para Adobe Illustrator e Adobe PhotoshopMedia FactoryJavaFXGraphicsViewer e SVG Converter
JavaFX Script
Tipos “Primitivos”Tipos de dados básicos (não nulos)IntegerNumberBooleanDurationStringSequenceFunction
varstring1= “JavaFX"; varstring2: String = “JavaFX";varinteger1= 3;varinteger2: Integer= 3;varnumber1= 3.0;varnumber2: Number= 3;varnumber3= 3 asNumber;varnumber4= integer1+ number1;Declaração de Variáveis
Tolo! Você não declarou o tipo de suas variáveis! Irá arder no fogo do inferno e seu código não compilará!
Não precisa, rapaz! JavaFX possui INFERÊNCIA DE TIPOS!
println(“JavaFXrules”);//JavaFXrulesprintln(‘JavaFXrules’);//JavaFXrulesprintln(“JavaFX ‘rules’ ”);//JavaFX ‘rules’println(‘JavaFX “rules” ’);//JavaFX “rules”Strings
varstring1= “JavaFX";varstring2: String = “rules";println(“{string1} {string2}”);//JavaFXrules“Valor de x: {x}”“Valor de x: {objeto.getX()}”Strings
OperadoresInteger e Number:+-*/modBooleanandornot
vart1: Duration= 1ms;vart2= 1s;vart3= 1m;vart4= 1h;println("{t1} {t2} {t3} {t4}");//1ms 500ms 60000ms 3600000msprintln(1s+ 500ms);//1500.0msprintln(1s/ 500ms);//2.0println(1s*2);//2000.0msprintln(1s/2);//500.0ms
Functions
defPI= 3.1416;functioncalcArea(raio: Number): Number{returnPI* raio * raio;}varraio= 5;vararea= calcArea(raio);
defPI= 3.1416;functioncalcArea(raio: Number) {returnPI* raio * raio;}varraio= 5;vararea= calcArea(raio);
defPI= 3.1416;functioncalcArea(raio: Number) {PI* raio * raio;}varraio= 5;vararea= calcArea(raio);
defPI= 3.1416;var calcArea=function(raio: Number) {PI* raio * raio;}varcalcPerimetro=function(raio: Number) {PI* raio * 2;}varcalc= calcArea;println(calc(5));calc= calcPerimetro;println(calc(5));
defPI= 3.1416;var calcArea=function(raio: Number) {PI* raio * raio;}varcalcPerimetro=function(raio: Number) {PI* raio * 2;}varcalc: function(Number):Number= calcArea;println(calc(5));calc= calcPerimetro;println(calc(5));
class A{varx= 0;functiongetx(){x;	}}vara= A{x:1};varb= A{x:2};varf= a.getx;varg= b.getx;println(f());//1println(g());//2
Binding
varx = 1;vary = bindx;varz = bindy * 2;println("{x} {y} {z}");//1 1 2x = 2;println("{x} {y} {z}");//2 2 4Binding
vara = 1;varb = bindawithinverse;println("{a} {b}");//1 1a = 2;println("{a} {b}");//2 2b = 3;println("{a} {b}");//3 3Binding
varx = 10;vary = 20;varrect1 = Rectangle{	x: bindx;	y: bindy;}; varrect2 = bindRectangle{	x: x;	y: y;}; Binding
defPI = 3.1416;varraio = 5;boundfunctioncalcArea(){PI * raio * raio;}vararea = bindcalcArea();println(area);// 78.53999raio = 10;println(area);// 314.15997Binding
vara = 1 on replace old{println("changing");println("old: {old}");println("new: {a}");};a = 3;Trigger
vara = 1 on replace old{println("changing");println("old: {old}");println("new: {a}");};a = 3;//changing//old: 0//new: 1//changing//old: 1//new: 3Trigger
GUI com JavaFX
publicclassHelloWorldSwing{publicstaticvoidmain(String[] args){JFrameframe = newJFrame("HelloWorldSwing");Jlabellabel= newJLabel("HelloWorld");	   frame.getContentPane().add(label);	   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	   frame.pack();	   frame.setVisible(true);	}}Hello World com Swing
Stage{title: "HelloWorld em JavaFX"width: 250 height: 80scene: Scene{content: Text{content: "HelloWorld!"               x: 10 y: 30font: Font{size: 24              }          }     }}Hello World com JavaFX
Stage{title: "Declarar ehfacil!"width: 250height: 250}Hello World com JavaFX
Stage{title: "Declarar ehfacil!"scene: Scene{width: 250height: 250}}Hello World com JavaFX
Objetos em Content
Posição dos Objetos na cena
Posição dos Objetos em cena
Posição dos Objetos em cena
Transformações
Efeitos
Efeitos e Transformações
Eventos
Agrupamentos
ImageView{image: Image{		url: "{__DIR__}imagem.png"	}rotate: 15scaleX: 2}Imagens
Vídeo

Tutorial JavaFX simples