O artigo apresenta a renovada plataforma JavaFX e as características da nova versão (2.0), que englobam as funcionalidades: controles de interface gráfica aprimorados, novos painéis de layout, mecanismo de renderização com aceleração por hardware, reprodução de mídia e as mudanças que ocorreram ao longo do seu lançamento. É abordada também uma introdução aos principais componentes que constituem a estrutura da plataforma e desenvolvido uma aplicação demonstrando alguns recursos oferecidos pelo JavaFX.
Em que situação o tema é útil:
Para desenvolvedores e designers que buscam a criação de interfaces gráficas com bons efeitos visuais, permitindo aproveitar seus conhecimentos em Java por meio da reutilização de bibliotecas próprias, uma vez que JavaFX utiliza Java. Esta vantagem possibilita usufruir de características da linguagem como genéricos, anotações e multithreading.
Introdução ao JavaFX 2.0:
O JavaFX 2.0 representa a
principal atualização para o desenvolvimento client-side da plataforma Java. Com base nisso, este artigo aborda
as inúmeras modificações que ocorreram em sua versão 2.0, bem como a
substituição da linguagem de script – JavaFX Script – pela linguagem Java e a
possibilidade de realizar o deploy em três diferentes modos: Standalone,
Browser e Web Start. Por fim, uma aplicação demonstrando alguns recursos da
tecnologia é desenvolvida.
Autores: Scheila Giongo, Everton Coimbra
de Araújo e Daniel
Rodrigues
JavaFX é uma plataforma baseada em Java e projetada para desenvolvedores que precisam criar aplicativos RIA. O termo RIA é usado para descrever Aplicações Ricas para Internet, ou seja, aplicações que são executadas em ambiente web, mas que possuem características similares a softwares desenvolvidos para execução em ambiente desktop. Aplicações RIA podem ser acessadas por meio de qualquer computador que esteja conectado à internet e sem a necessidade de instalação destes softwares. A execução deles ocorre no ambiente do navegador, e atualizações de novas versões são realizadas de maneira automática.
Desta maneira, ocorre um equilíbrio entre o processamento executado no servidor e o que ocorre no cliente, visto que o servidor não necessita realizar todo o processamento. Assim, se ganha em termos de agilidade na interação entre a aplicação e o usuário, reduzindo o volume de dados transmitido.
Desde seu lançamento pela Sun Microsystems em dezembro de 2008, o JavaFX tem passado por significativas mudanças. Na versão 1.0, foi criada uma linguagem para trabalhar com os recursos do JavaFX com o nome de JavaFX Script. Esta linguagem era conhecida anteriormente como F3 (Form Follows Function), um projeto adquirido pela Sun por meio da compra da SeeBeyond.
O JavaFX Script era uma linguagem estaticamente tipada, orientada a objetos e projetada para a JVM. As aplicações construídas com essa linguagem eram executadas em todos os ambientes (desktop ou navegador) onde o JRE (Java Runtime Environment) era executado, buscando aplicar o conceito “Write once, run anywhere”. Este conceito ganhou ênfase na versão 1.1, anunciada em fevereiro de 2009, quando se tornou possível, além da criação de aplicativos para desktop e navegadores, a criação de aplicativos JavaFX para dispositivos móveis.
Na versão 1.2 algumas características foram adicionadas, como o suporte beta para as plataformas Linux e Solaris, a mudança no pacote de layouts (com a inclusão de novas classes como ClipView, Flow e Panel) e a adição de efeitos visuais. Com as modificações na sintaxe da linguagem JavaFX Script, alguns códigos funcionais da versão anterior se tornaram incompatíveis e obsoletos.
A versão 1.3, lançada em 22 de abril de 2010, trouxe várias melhorias, oferecendo melhor desempenho em tempo de execução para animações complexas e renderização de textos, suporte para aplicativos de TV, suporte à tecnologia 3D e novos controles de interface (por exemplo, ChoiceBox e PasswordBox). Outra novidade que instigou o uso do JavaFX foi a inclusão de um editor visual para interfaces chamado JavaFX Composer, na versão 6.9 da IDE NetBeans.
Com a compra da Sun pela Oracle em 2010, o JavaFX foi totalmente remodelado, tornando-se incompatível com as versões anteriores. Como destaques dessa mudança, ressalta-se a descontinuação do suporte à linguagem JavaFX Script e a conversão de toda a API, que antes era codificada em JavaFX Script, para Java puro. Esta mudança permite que o programador escolha a linguagem utilizada para codificar em JavaFX (desde que seja uma linguagem que rode na JVM). Com isso, programadores Java não precisam aprender uma nova linguagem para codificar em JavaFX. Para aqueles que preferem utilizar uma linguagem declarativa, a perda do JavaFX Script pode ser contornada com linguagens como Visage (fork de JavaFX Script), Scala ou Groovy.
No FAQ criado pela Oracle sobre JavaFX (veja a seção Links), consta que esta tecnologia substituirá o Swing e o AWT. Com base nisso é possível presumir que a Oracle não está “brincando” com JavaFX e investirá pesado na tecnologia.
Deste modo, ao longo deste artigo serão abordadas as características que envolvem o JavaFX, considerado o próximo passo na evolução do lado cliente (client-side) da plataforma Java.
JavaFX 2.0
O JavaFX 2.0 foi projetado para oferecer um rico conjunto de APIs que simplifiquem o desenvolvimento de softwares que utilizem conteúdo de multimídia. Para que isso seja possível, são utilizadas avançadas engines de mídia e gráficos com aceleração por hardware. Além do suporte à música, vídeo e animações, JavaFX provê uma nova e moderna coleção de controles de Interface com o Usuário, tornando-se a escolha óbvia para o desenvolvimento RIA com Java. E por ser baseado em Java, usufrui de todos os poderosos recursos desta linguagem, como anotações, genéricos e multithreading, e o suporte a aplicações de grande escala, com o incremento de novas funcionalidades, como o Binding.
Com o JavaFX sendo baseado em Java, ele preserva o investimento anterior na linguagem e plataforma, pois possibilita utilizar suas bibliotecas de maneira transparente, conectar com aplicações Java EE ou até mesmo utilizar recursos nativos do sistema operacional por meio de JNI (Java Native Interface). Olhando para a distribuição das aplicações, as desenvolvidas em JavaFX suportam três modos de execução: um deles é pelo navegador, onde a aplicação é embutida em uma página web, sendo iniciada automaticamente quando esta página é carregada; outro modo de deploy é conhecido como Web Start, permitindo realizar o download do aplicativo e executá-lo na área de trabalho – isto é, no desktop; e no caso do usuário não possuir acesso à internet, existe ainda um terceiro modo, conhecido como Standalone, onde o aplicativo é instalado em uma unidade local e pode ser executado com um duplo clique no arquivo JAR.
Para a criação da interface com o usuário, JavaFX introduz uma nova linguagem de marcação chamada FXML como opção à codificação em Java. FXML permite modelar a UI separadamente da lógica da aplicação, não sendo necessário recompilar o código toda vez que uma mudança no layout ocorrer. Por ser baseada em XML, uma linguagem conhecida pela maioria dos desenvolvedores, se torna fácil e intuitiva de aprender.
Outra novidade do JavaFX 2.0 é que a tecnologia oferece uma perfeita integração com aplicações Swing. Esta integração é possível porque o JavaFX apresenta a classe JFXPanel, localizada no pacote javafx.embed.swing, que permite incorporar novas funcionalidades, tais como reprodução de mídia e inclusão da sua rica API gráfica, dentro de aplicações Swing. Desta maneira a Oracle possibilita a utilização de Swing e JavaFX na mesma aplicação, enquanto recomenda a migração para JavaFX.
Para compreender
melhor o funcionamento do JavaFX, na ...