51
Raphael Marques Mestrando em Informática da UFPB [email protected] raphaelmarques.wordpress.com

JavaFX

Embed Size (px)

DESCRIPTION

Palestra sobre JavaFX que apresentei na I Semana da Computação do DI/UFPB. Introdução à plataforma JavaFX e ao JavaFX Script.

Citation preview

Page 1: JavaFX

Raphael Marques

Mestrando em Informática da [email protected]

Page 2: JavaFX

O que é JavaFX?

Coisas que você pode construir com JavaFX

Por que JavaFX?

JavaFX Script

GUI com JavaFX

Por onde começar?

Exemplos

2

Page 3: JavaFX
Page 4: JavaFX

4

Page 5: JavaFX

Uma família de tecnologias

JavaFX Runtime

JavaFX Script

JavaFX Tools

Para quem?

Designers

Desenvolvedores

5

Page 6: JavaFX
Page 7: JavaFX

7

Page 8: JavaFX

8

Page 9: JavaFX

9

Page 10: JavaFX

10

Page 11: JavaFX

11

Page 12: JavaFX

12

Page 13: JavaFX

13

Page 14: JavaFX
Page 15: JavaFX

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

Page 16: JavaFX

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

Page 17: JavaFX
Page 18: JavaFX

def RAIO = 4;

def PI = 3.1415;

var area = PI * RAIO * RAIO;

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

//a area eh: 50264

18

Page 19: JavaFX

19

var ativado = true;var visivel: Boolean = false;

println("Ativado: {ativado}");//Ativado: trueprintln("Visivel: {visivel}");//Visivel: false

visivel = true;

println("Visivel: {visivel}");//Visivel: true

Page 20: JavaFX

20

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

Page 21: JavaFX

21

var s1 = "Hello";var s2: String = "Hello";

var s3 = "Hello 'world'";var s4 = 'Hello "world"';

println(s3);//Hello 'world'

println(s4);//Hello "world"

Page 22: JavaFX

22

var s1 = "Java";

var s2 = "FX";

var s3 = "{s1}{s2}";

println(s3);

//JavaFX

Page 23: JavaFX

var d1 = 1ms;

var d2 = 1s;

var d3: Duration = 1m;

var d4: Duration = 1h;

var d5 = 1m + 15s;

23

Page 24: JavaFX

24

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;

}

Page 25: JavaFX

25

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

Page 26: JavaFX

26

class Conta{

var nome: String;

var numeroDaConta: Integer;

var saldo: Number = 1000;

function deposito(valor: Number){

saldo += valor;

}

}

Page 27: JavaFX

27

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 ]

Page 28: JavaFX

28

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}");//trueprintln("{n1 == n3}");//falseprintln("{n1 == n4}");//false

Page 29: JavaFX

29

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 ]

Page 30: JavaFX

30

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

Page 31: JavaFX

31

var a = "Raphael Marques";

var b = 123456;

var c = 1000;

var conta = bind Conta{

nome: a

numeroDaConta: b

saldo: c

}

Page 32: JavaFX

32

var a = "Raphael Marques";

var b = 123456;

var c = 1000;

var conta = Conta{

nome: bind a

numeroDaConta: bind b

saldo: bind c

}

Page 33: JavaFX
Page 34: JavaFX

34

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);

}

}

Page 35: JavaFX

35

Stage {title: "Hello World em JavaFX"width: 250 height: 80scene: Scene {

content: Text {content: "Hello World!"x: 10 y: 30font : Font {

size : 24}

}}

}

Page 36: JavaFX

36

Stage{

title: "Declarar eh facil!"

width: 250

height: 250

}

Page 37: JavaFX

37

Stage{

title: "Declarar eh facil!"

scene: Scene{

width: 250

height: 250

}

}

Page 38: JavaFX

38

Stage{...scene: Scene{

...content: [

Rectangle{x: 45 y: 45width: 160 height: 160arcWidth: 15 arcHeight: 15fill: Color.GREEN

}]

}}

Page 39: JavaFX

39

...content: [

Rectangle{...

}Circle{

centerX: 125 centerY: 125radius: 90fill: Color.WHITEstroke: Color.RED

}]...

Page 40: JavaFX

40

...

content: [

Circle{

...

}

Rectangle{

...

}

]

...

Page 41: JavaFX

41

...content: [

Circle{...

}Rectangle{

...opacity: 0.6

}]...

Page 42: JavaFX

42

...

Rectangle{

...

transforms: Rotate{

pivotX: 125 pivotY: 125

angle: 15

}

}

...

Page 43: JavaFX

43

...

Rectangle{

...

effect: Lighting{

surfaceScale: 5

}

}

...

Page 44: JavaFX

44

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;

}

}

...

Page 45: JavaFX

...Group{

transforms: Translate{x: 15 y: 15

}content: [

Text{...

}Circle{

...}

]}...

45

Group

Translate

CircleText

Page 46: JavaFX

46

Page 47: JavaFX
Page 48: JavaFX

JavaFX

http://javafx.com/

JavaFX Developer Home

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

JavaFX Programing (with Passion!)

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

48

Page 49: JavaFX

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

Page 50: JavaFX

50

Page 51: JavaFX

Raphael Marques

Mestrando em Informática da [email protected]