javafx

35
JavaFX JavaFX Rafael W. Frasson Rafael W. Frasson Danilo Felicio Jr. Danilo Felicio Jr. João Otávio Dambrós Dezanet João Otávio Dambrós Dezanet INE5612 – Desenvolvimento de Sistemas Orientados a Objetos II

Upload: carlos-delaney

Post on 30-Dec-2015

40 views

Category:

Documents


0 download

DESCRIPTION

JavaFX. Rafael W. Frasson Danilo Felicio Jr. João Otávio Dambrós Dezanet. INE5612 – Desenvolvimento de Sistemas Orientados a Objetos II. O que é JavaFX?. JavaFX é uma plataforma de software multimídia baseada em java para criação de RIA - Rich Internet Applications (Internet Rica). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: JavaFX

JavaFXJavaFX

Rafael W. FrassonRafael W. Frasson

Danilo Felicio Jr.Danilo Felicio Jr.

João Otávio Dambrós DezanetJoão Otávio Dambrós Dezanet

INE5612 – Desenvolvimento de Sistemas Orientados a Objetos II

Page 2: JavaFX

O que é JavaFX?

JavaFX é uma plataforma de software multimídia baseada em java para criação de RIA - Rich Internet Applications (Internet Rica).

Internet Rica? Como assim? O que seria?

Primeiramente, explicarei o que é uma Internet Rica…

Page 3: JavaFX

Rich Internet Application (RIA)

De modo geral aplicacões RIA unem a funcionalidade dos softwares com o extenso alcance e facilidades econômicas de aplicativos para internet.

É um conceito inovador no modo de pensar e desenvolver na web.

Proporciona um novo nível de experiências para usuários e desenvolvedores.

A tecnologia RIA fornece um ambiente dinâmico com capacidade de manusear aplicativos de forma bastante interativa.

Page 4: JavaFX

JavaFX

A Sun Microsystems é responsável pelo desenvolvimento do JavaFX, baseado na tecnologia Java e concebido para proporcionar uma maior interatividade. Já possui uma vasta variedade de aplicações em dispositivos, incluindo computadores pessoais, conversores(set-top boxes), dispositivos móveis e dispositivos que usam a tecnologia Blu-Ray.

Page 5: JavaFX

JavaFX Script

Criado pelo engenheiro da Sun Chris Oliver, possibilita o desenvolvimento rápido de interfaces Swing/AWT/Java2D de forma mais fácil do que hoje.

A idéia da Sun é não só atacar o mercado Desktop, onde o Java tem ganho certo mercado ultimamente, mas também atacar o Adobe Flex e o MS Silverlight no mercado de Rich Internet Applications, as RIAs.

Page 6: JavaFX

JavaFX Mobile

É um novo sistema operacional baseado no kernel do Linux e com uma JVM portátil que pretende levar o Java ao novo mercado dos Smartphones.

Seria voltado ao desenvolvimento fácil de aplicativos bonitos e usáveis em ambiente móvel.

Page 7: JavaFX

O que eu crio com JavaFX?

Você pode criar interfaces com o usuário em JavaFX, animações, jogos, applets, e muito mais, com somente uma linguagem!

Além de JavaFX ser multiplataforma e portátil como o Java

Page 8: JavaFX

JavaFX é outra linguagem?

Sim. A sintaxe de JavaFX é novidade, é chamada "declarativa". Quer dizer que você pode criar aplicativos sem usar variáveis, somente declarando um objeto dentro do outro.

Page 9: JavaFX

JavaFX é compatível com Java?

Praticamente 100%.

Se você tem uma aplicação em Java funcionando, você pode usar as classes com JavaFX. Esta é uma das maiores vantagens de JavaFX.

Page 10: JavaFX

Há algo pronto em JavaFX?

Muita movimentação da comunidade está sendo feita. JFXtras, Griffon, CRUDFx entre outros são exemplos.

Page 11: JavaFX

Por que não vejo material sobre JavaFX tanto quanto em Java?

Parece óbvio, mas é uma dúvida comum, pois JavaFX promete muito, mas a ausência de material está no fato de JavaFX ainda estar na adolescência.

Page 12: JavaFX

Por que as empresas não adotam JavaFX de cara?

A linguagem está evoluindo, da versão 1.1 para a 1.2 muitas mudanças aconteceram.

Palavras chaves foram removidas, novas classes adicionadas entre outros.

A tendência é a evolução continuar, assim, é normal uma espera das empresas e sites para aderirem a tecnologia, mas tenha certeza que todos estão de olho!

Page 13: JavaFX

Características do JavaFX

É uma linguagem baseada no conceito de perfil comum para permitir facilmente sua disseminação através de dispositivos que a suportam.

Esse conceito permite o desenvolvimento de aplicações tanto para dispositivos móveis quanto para desktop.

Page 14: JavaFX

Características do JavaFX

O modelo “Drag to Install” permite ao usuário final arrastar aplicações JavaFX de web browsers para o desktop mantendo o contexto original mesmo se o browser for fechado.

A aplicação também pode ser reiniciada através de um atalho que é automaticamente criado na área de trabalho.

Page 15: JavaFX

Características do JavaFX

A linguagem conta com diversos plug-ins que permitem a integração de imagens vindas de diversos programas, como Photoshop e Illustrator.

É gerado um script code que preserva as camadas e estruturas da imagem, mantendo a integridade do arquivo original.

Page 16: JavaFX

Estrutura do JavaFX

A sintaxe declarativa do JavaFX permite construir certos aplicativos sem usar sequer uma variável, por exemplo:

Page 17: JavaFX

Estrutura do JavaFX

Apesar de ser baseada em Java, a sintaxe do JavaFX traz algumas melhorias, como o uso de Binding.

O Bind associa uma variável com uma expressão, que pode ser uma simples variável ou até uma função:

Page 18: JavaFX

Estrutura do JavaFX

Com o Bind, a variável y sempre estará associada à x, e será impossível modificá-la singularmente. Afetando o valor de x causa uma alteração direta em y.

O Binding pode ser usado com variáveis, objetos, funções, expressões e até sequências.

Page 19: JavaFX

Estrutura do JavaFX

Juntamente de triggers, o Bind permite um melhor desenvolvimento de jogos e animações além de melhorar a visibilidade e facilitar a leitura do código.

Page 20: JavaFX

Estrutura do JavaFX

Declaração de variáveis:

Não existem tipos primitivos. Existem “tipos de valor”, que são objetos derivados da classe Object

“Tipos de valor” não admitem null

Não existe o tipo char em JavaFX Script, apenas String

Page 21: JavaFX

Estrutura do JavaFX

Declaração de variáveis: var ou def

var x // ilegal

var x : // Integer Inicializada com zero

var x = 5var x : Integer = 5

-> def não pode ser inicializado sem valor

Page 22: JavaFX

Estrutura do JavaFX

Declaração de variáveis: Durantion

Duration é um “tipo de valor” que representa uma quantidade de tempo

var a: Duration = 10s;var b: Duration = 250ms;

Page 23: JavaFX

Estrutura do JavaFX

Sequences

Sequences são o equivalente aos arrays do Java

Não permitem aninhamento

def dias : String[] = [ "Dom", "Seg", "Ter" ]def dias = [ "Dom", "Seg", "Ter" ]

Page 24: JavaFX

Estrutura do JavaFX

Functions

Functions são equivalentes aos métodos do Java

function a( param : Tipo, param2 : Tipo ) : tipoDoRetorno { }

Page 25: JavaFX

Estrutura do JavaFX

Declaração de blocos dentro de uma String

var verdade = true; println("Sua afirmação é {if(verdade) 'verdadeira' else

'false'}")

Page 26: JavaFX

Estrutura do JavaFX

Classes JavaFX

Não tem construtores

class Pessoa { var nome : String; var sobrenome : String; function nomeCompleto () { "{nome}{sobrenome}" }}

Page 27: JavaFX

Estrutura do JavaFX

Page 28: JavaFX

JavaFX x Java

Hello World em Java:

Page 29: JavaFX

JavaFX x Java

Hello World em JavaFX Script:

Page 30: JavaFX

JavaFX

Criando a janela da aplicação:

Stage { title: "Hello World JavaFX" ... width:400 height:100}

A classe Stage é necessária para desenhar uma janela;

Stage é um container independente;

As palavras title, visible, width, height, etc, são chamadas de variáveis de instância.

Page 31: JavaFX

JavaFX

Configurando o objeto Scene:scene: Scene { content: Text { content: "Hello World!" font: Font { size: 30 } layoutX: 114 layoutY: 45

}

O objeto Scene é responsável por exibir o conteúdo gráfico da aplicação, o que inclui objetos de texto, linhas, círculos, botões e etc;

É um container para o SceneGraph.

Page 32: JavaFX

JavaFX

O objeto scene possui uma variável chamada content que é utilizada para manter os nós da aplicação;

Existem vários tipos de nós, como objetos gráficos, textos e componentes de GUI, objetos de mídia, etc;

Cada nó pode ser transformado e animado;

É possível aplicar diferentes tipos de efeitos a cada nó;

Um nó do tipo Group é um Sequence de nós filhos. Qualquer efeito ou transformação aplicada ao Group será aplicada a todos os nós filhos.

Page 33: JavaFX

JavaFX

content: [ Rectangle { ...propriedades... },

Circle { ...propriedades... }, Text { ...propriedades... }]

RectangleRectangle

CircleCircle

TEXTTEXT

Stage

Scene

Page 34: JavaFX

JavaFX

Parte da API JavaFX

Page 35: JavaFX

Fontes

http://download.oracle.com/javafx/index.html

http://openjfx.java.sun.com/current-build/doc/reference/JavaFXReference.html

http://download.oracle.com/docs/cd/E17802_01/javafx/javafx/1/docs/api/

http://www.javafx.com/

pt.wikipedia.org/wiki/JavaFX

http://javafree.uol.com.br/artigo/874587/Bind-em-JavaFX.html