javafx
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 PresentationTRANSCRIPT
![Page 1: JavaFX](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/10.jpg)
Há algo pronto em JavaFX?
Muita movimentação da comunidade está sendo feita. JFXtras, Griffon, CRUDFx entre outros são exemplos.
![Page 11: JavaFX](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/16.jpg)
Estrutura do JavaFX
A sintaxe declarativa do JavaFX permite construir certos aplicativos sem usar sequer uma variável, por exemplo:
![Page 17: JavaFX](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/24.jpg)
Estrutura do JavaFX
Functions
Functions são equivalentes aos métodos do Java
function a( param : Tipo, param2 : Tipo ) : tipoDoRetorno { }
![Page 25: JavaFX](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/26.jpg)
Estrutura do JavaFX
Classes JavaFX
Não tem construtores
class Pessoa { var nome : String; var sobrenome : String; function nomeCompleto () { "{nome}{sobrenome}" }}
![Page 27: JavaFX](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/27.jpg)
Estrutura do JavaFX
![Page 28: JavaFX](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/28.jpg)
JavaFX x Java
Hello World em Java:
![Page 29: JavaFX](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/29.jpg)
JavaFX x Java
Hello World em JavaFX Script:
![Page 30: JavaFX](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/33.jpg)
JavaFX
content: [ Rectangle { ...propriedades... },
Circle { ...propriedades... }, Text { ...propriedades... }]
RectangleRectangle
CircleCircle
TEXTTEXT
Stage
Scene
![Page 34: JavaFX](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/34.jpg)
JavaFX
Parte da API JavaFX
![Page 35: JavaFX](https://reader034.vdocuments.com.br/reader034/viewer/2022051820/56812acd550346895d8ea641/html5/thumbnails/35.jpg)
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