Você está na página 1de 51

Raphael Marques

Mestrando em Informática da UFPB


jose.raphael.marques@gmail.com
raphaelmarques.wordpress.com
 O que é JavaFX?
 Coisas que você pode construir com JavaFX
 Por que JavaFX?
 JavaFX Script
 GUI com JavaFX
 Por onde começar?
 Exemplos

2
4
 Uma família de tecnologias
 JavaFX Runtime
 JavaFX Script
 JavaFX Tools

 Para quem?
 Designers
 Desenvolvedores

5
7
8
9
10
11
12
13
 Uma única plataforma RIA para todas as telas
 Desktop, browser e celular (futuramente TVs)

 Mercado de amplo alcance


 Bilhões de dispositivos

 Fluxo de trabalho designer-desenvolvedor


 Redução drástica do ciclo de desenvolvimento

15
 Runtime poderoso
 Onipresença, poder, performance e segurança do
Java

 Liberdade do browser
 Arraste suas aplicações do browser para o
desktop

 Compatibilidade com tecnologias Java


 Use qualquer biblioteca Java
16
def RAIO = 4;
def PI = 3.1415;
var area = PI * RAIO * RAIO;

println(“a area eh: {area}” );


//a area eh: 50264

18
var ativado = true;
var visivel: Boolean = false;
println("Ativado: {ativado}");
//Ativado: true
println("Visivel: {visivel}");
//Visivel: false
visivel = true;
println("Visivel: {visivel}");
//Visivel: true
19
var inteiro: Integer = 3;
var numero: Number = 3.0;
println("inteiro: {inteiro}");
//inteiro: 3
println("numero: {numero}");
//numero: 3.0
println("conversao: {numero as Integer}");
//conversao: 3

20
var s1 = "Hello";
var s2: String = "Hello";
var s3 = "Hello 'world'";
var s4 = 'Hello "world"';
println(s3);
//Hello 'world'
println(s4);
//Hello "world"

21
var s1 = "Java";
var s2 = "FX";
var s3 = "{s1}{s2}";

println(s3);
//JavaFX

22
var d1 = 1ms;
var d2 = 1s;
var d3: Duration = 1m;
var d4: Duration = 1h;

var d5 = 1m + 15s;

23
def PI = 3.1415;
def RAIO = 4;

println("area: {getArea(RAIO)}");
//area: 50.264

function getArea(raio: Number): Number{


var area = PI * raio * raio;
return area;
}
24
class Conta{
var nome: String;
var numeroDaConta: Integer;
var saldo: Number = 1000;
}
var conta = Conta{
nome: "Raphael Marques"
numeroDaConta: 123456
}
println("nome: {conta.nome}");
//nome: Raphael Marques
25
class Conta{
var nome: String;
var numeroDaConta: Integer;
var saldo: Number = 1000;

function deposito(valor: Number){


saldo += valor;
}
}
26
var software: String[]
= ["Solaris", "Java", "JavaFX"];
var hardware: String[]
= ["Atom", "Sempron", "GForce"];
var produtos = [software hardware];
println(software);
//[ Solaris, Java, JavaFX ]
println(hardware);
//[ Atom, Sempron, GForce ]
println(produtos);
//[ Solaris, Java, JavaFX, Atom, Sempron, GForce ]

27
var n1: Integer[] = [1..10];
var n2: Integer[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var n3: Integer[] = [1, 2, 3, 5, 4, 6, 7, 8, 9, 10];
var n4: Integer[] = [1..11];
println("{n1 == n2}");
//true
println("{n1 == n3}");
//false
println("{n1 == n4}");
//false

28
var n1: Integer[] = [1..10];
var n2: Integer[] = n1;
var n3 = n1[valor | (valor mod 2) == 0];
println(n3);
//[ 2, 4, 6, 8, 10 ]
var n5 = [1..10 step 2];
println(n5);
//[ 1, 3, 5, 7, 9 ]
var n6 = for(n in n1){n * 2};
println(n6);
//[ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 ]

29
var variavel1 = 0;
var variavel2 = bind variavel1;
variavel1 = 5;
println(variavel2); //5
variavel1 = 10;
println(variavel2); //10
var variavel3 = bind variavel2 * variavel2;
println(variavel3); //100

30
var a = "Raphael Marques";
var b = 123456;
var c = 1000;

var conta = bind Conta{


nome: a
numeroDaConta: b
saldo: c
}
31
var a = "Raphael Marques";
var b = 123456;
var c = 1000;

var conta = Conta{


nome: bind a
numeroDaConta: bind b
saldo: bind c
}
32
public class HelloWorldSwing{
public static void main(String[] args){
JFrame frame =
new JFrame("HelloWorld Swing");
JLabel label =
new JLabel("Hello World");
frame.getContentPane().add(label);
frame.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
34
Stage {
title: "Hello World em JavaFX"
width: 250 height: 80
scene: Scene {
content: Text {
content: "Hello World!"
x: 10 y: 30
font : Font {
size : 24
}
}
}
}

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

36
Stage{
title: "Declarar eh facil!"
scene: Scene{
width: 250
height: 250
}
}

37
Stage{
...
scene: Scene{
...
content: [
Rectangle{
x: 45 y: 45
width: 160 height: 160
arcWidth: 15 arcHeight: 15
fill: Color.GREEN
}
]
}
}

38
...
content: [
Rectangle{
...
}
Circle{
centerX: 125 centerY: 125
radius: 90
fill: Color.WHITE
stroke: Color.RED
}
]
...

39
...
content: [
Circle{
...
}
Rectangle{
...
}
]
...
40
...
content: [
Circle{
...
}
Rectangle{
...
opacity: 0.6
}
]
...
41
...
Rectangle{
...
transforms: Rotate{
pivotX: 125 pivotY: 125
angle: 15
}
}
...

42
...
Rectangle{
...
effect: Lighting{
surfaceScale: 5
}
}
...

43
var x: Number; var y: Number;
var dx: Number; var dy: Number;

...
Rectangle{
x: bind 45 + x + dx
y: bind 45 + y + dy
...
onMouseDragged: function(e: MouseEvent){
dx = e.dragX; dy = e.dragY;
}
onMouseReleased: function(e: MouseEvent){
x += dx; y += dy;
dx = 0; dy = 0;
}
}
...
44
...
Group{
transforms: Translate{ Group
x: 15 y: 15
}
content: [
Text{
... Translate
}
Circle{
...
}
]
} Text Circle
...
45
46
 JavaFX
 http://javafx.com/

 JavaFX Developer Home


 http://java.sun.com/javafx/

 JavaFX Programing (with Passion!)


 http://www.javapassion.com/javafx/

48
 Windows e Mac OS X

 Netbeans IDE 6.5 para JavaFX 1.1.1

 JavaFX 1.1 Production Suite


 Plugin para Adobe Illustrator e Adobe Photoshop
 Media Factory
▪ JavaFX Graphics Viewer e SVG Converter

 JavaFX 1.1.1 SDK


49
50
Raphael Marques

Mestrando em Informática da UFPB


jose.raphael.marques@gmail.com
raphaelmarques.wordpress.com

Você também pode gostar