360 likes | 516 Views
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).
E N D
JavaFX Rafael W. Frasson DaniloFelicio Jr. JoãoOtávioDambrósDezanet INE5612 – Desenvolvimento de SistemasOrientados 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). • Internet Rica? Como assim? O que seria? • Primeiramente, explicarei o que é uma Internet Rica…
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.
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. 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.
É 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. JavaFX Mobile
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
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.
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.
Há algo pronto em JavaFX? • Muita movimentação da comunidade está sendo feita. JFXtras, Griffon, CRUDFx entre outros são exemplos.
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.
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!
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.
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.
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.
Estrutura do JavaFX A sintaxe declarativa do JavaFX permite construir certos aplicativos sem usar sequer uma variável, por exemplo:
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:
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.
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.
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
Estrutura do JavaFX • Declaração de variáveis: var ou def • var x // ilegal • var x : // Integer Inicializada com zero • var x = 5 • var x : Integer = 5 • -> def não pode ser inicializado sem valor
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;
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" ]
Estrutura do JavaFX • Functions • Functions são equivalentes aos métodos do Java • function a( param : Tipo, param2 : Tipo ) : tipoDoRetorno { }
Estrutura do JavaFX • Declaração de blocos dentro de uma String • var verdade = true; • println("Sua afirmação é {if(verdade) 'verdadeira' else 'false'}")
Estrutura do JavaFX • Classes JavaFX • Não tem construtores • class Pessoa { • var nome : String; • var sobrenome : String; • functionnomeCompleto () { • "{nome}{sobrenome}" • } • }
Estrutura do JavaFX • Instanciando objetos • def craque = Pessoa { • nome: "AAA" • sobrenome: "BBB" • } • def Craque = new Pessoa(); • craque.nome = "AAA" • craque.sobrenome = "BBB"
JavaFX x Java • Hello World em Java:
JavaFX x Java • Hello World em JavaFX Script:
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.
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.
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.
JavaFX content: [ Rectangle { ...propriedades... }, Circle { ...propriedades... }, Text { ...propriedades... } ] Stage Scene Circle Rectangle TEXT
JavaFX Parte da API 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