Tutorial JavaFX simples

Post on 24-May-2015

12.079 views 2 download

description

Com a colaboração de José Raphael Marques, criei esta apresentação para treinar o pessoal do NTI com conceitos básicos de JavaFX.

Transcript of Tutorial JavaFX simples

JavaFXClodoaldo Brasilino Leite Neto

clodbrasilino@gmail.com

O que é JavaFX?

O que é JavaFX?

A Plataforma JavaFX

A Plataforma JavaFX

Uma família de tecnologias◦JavaFX Runtime◦JavaFX Script◦JavaFX Tools

Para quem?◦Designers◦Desenvolvedores

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 telas

Mercado 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ásicos

JavaFX◦http://javafx.com/

JavaFX DeveloperHome◦http://java.sun.com/javafx/

JavaFX Programing(withPassion!)◦http://www.javapassion.com/javafx/

Raphael Marques – Meu tutor! ◦http://raphaelmarques.wordpress.com/

Ferramentas Atuais

Windows, Linux, Mac OS X e Solarisx86

JavaFX 1.2 SDK

NetbeansIDE 6.5.1 para JavaFX 1.2

JavaFX 1.2 ProductionSuite◦Plugin para Adobe Illustrator e Adobe Photoshop◦Media Factory

JavaFX Graphics Viewer e SVG Converter

JavaFX Script

Tipos “Primitivos”

Tipos de dados básicos (não nulos)◦Integer◦Number◦Boolean◦Duration

StringSequenceFunction

Declaração de Variáveis

var string1= “JavaFX"; var string2: String = “JavaFX";var integer1= 3;var integer2: Integer= 3;var number1= 3.0;var number2: Number= 3;var number3= 3 as Number;var number4= integer1+ number1;

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(“JavaFX rules”);//JavaFX rulesprintln(‘JavaFX rules’);//JavaFX rulesprintln(“JavaFX ‘rules’ ”);//JavaFX ‘rules’println(‘JavaFX “rules” ’);//JavaFX “rules”

Strings

Strings

var string1= “JavaFX";var string2: String = “rules";

println(“{string1} {string2}”);//JavaFX rules

“Valor de x: {x}”“Valor de x: {objeto.getX()}”

Operadores

Integer e Number:◦+◦-◦*◦/◦mod

Boolean◦and◦or◦not

var t1: Duration= 1ms;var t2= 1s;var t3= 1m;var t4= 1h;println("{t1} {t2} {t3} {t4}");

//1ms 500ms 60000ms 3600000ms

println(1s+ 500ms);//1500.0msprintln(1s/ 500ms);//2.0println(1s*2);//2000.0msprintln(1s/2);//500.0ms

Functions

def PI= 3.1416;

function calcArea(raio: Number): Number{return PI* raio * raio;

}

var raio= 5;

var area= calcArea(raio);

def PI= 3.1416;

function calcArea(raio: Number) {return PI* raio * raio;

}

var raio= 5;

var area= calcArea(raio);

def PI= 3.1416;

function calcArea(raio: Number) {PI* raio * raio;

}

var raio= 5;

var area= calcArea(raio);

def PI= 3.1416;

var calcArea = function(raio: Number) {PI* raio * raio;

}

var calcPerimetro = function(raio: Number) {PI* raio * 2;

}

var calc= calcArea;println(calc(5));

calc= calcPerimetro;println(calc(5));

def PI= 3.1416;

var calcArea = function(raio: Number) {PI* raio * raio;

}

var calcPerimetro = function(raio: Number) {PI* raio * 2;

}

var calc: function (Number):Number = calcArea;println(calc(5));

calc= calcPerimetro;println(calc(5));

class A{var x= 0;function getx(){

x;}

}var a= A{x:1};var b= A{x:2};

var f= a.getx;var g= b.getx;

println(f());//1println(g());//2

Binding

Binding

var x = 1;var y = bind x;var z = bind y * 2;

println("{x} {y} {z}");//1 1 2

x = 2;

println("{x} {y} {z}");//2 2 4

Binding

var a = 1;var b = bind a with inverse;

println("{a} {b}");//1 1

a = 2;

println("{a} {b}");//2 2

b = 3;

println("{a} {b}");//3 3

var x = 10;var y = 20;var rect1 = Rectangle{

x: bind x;y: bind y;

}; var rect2 = bind Rectangle{

x: x;y: y;

};

Binding

def PI = 3.1416;var raio = 5;bound function calcArea(){

PI * raio * raio;}var area = bind calcArea();println(area);// 78.53999raio = 10;println(area);// 314.15997

Binding

var a = 1 on replace old{println("changing");println("old: {old}");println("new: {a}");

};a = 3;

Trigger

var a = 1 on replace old{println("changing");println("old: {old}");println("new: {a}");

};a = 3;

//changing//old: 0//new: 1//changing//old: 1//new: 3

Trigger

GUI com JavaFX

public class HelloWorldSwing{public static void main(String[] args){ JFrameframe = new JFrame("HelloWorldSwing"); Jlabellabel= new JLabel("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: 80 scene: Scene{ content: Text{ content: "HelloWorld!" x: 10 y: 30 font: Font{ size: 24 } } }}

Hello World com JavaFX

Stage{title: "Declarar eh facil!"width: 250height: 250

}

Hello World com JavaFX

Stage{title: "Declarar eh facil!"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