JavaFX

Pesquisa realizada por Tiago Trindade, Emerson Rodrigues e Robson Cunha em 2007-2

Criação do JavaFX

Criado pela Sun e apresentado no dia 08/05/2007, durante a conferência JavaOne, o JavaFX é usado para o desenvolvimento de aplicativos para internet como RIA ou Web 2.0, o JavaFX é um open-surce que interage com outros aplicativos da linha J2ME, J2EE e J2SE, facilitando o trabalho e a distribuição do sistema, além de aproveitamento de código. Ele é totalmente voltado para os variados dispositivos de consumo e computadores acionados pela tecnologia Java.
O foco do JavaFX é a exploração de oportunidades no mercado de consumo e o primeiro software da linha, chamado JavaFX Móbile é voltado para as aplicações móveis.
Esta nova linguagem de script possui características declarativas e tipos estáticos executados sobre uma máquina virtual Java. É baseada em Swing, Jva2D e Java3D para oferecer uma API de maior nível de abstração e o seu objetivo maior é o desenvolvimento de Rich Internet Applications (RIA).
De acordo com o vice-presidente da Sun, Rich Green, a linguagem JavaFX Script é voltada para criação de conteúdos e deve ampliar o alcance do Java no mercado.

igjavafxarchitecturenz5.jpg

Video do JavaOne (conferência organizada pela Sun para desenvolvedores)

Conheça um pouco sobre JavaFX Script e o JavaFX Mobile

Esta nova linguagem de script foi desenvolvida para ser ao mesmo tempo atrativa e eficiente para navegadores Rich Internet Applications (RIA), as aplicações RIA permitem que os programas da internet se comportem como programas de desktops. A tecnologia que envolve o JavaFX foi criada para ser um grupo de produtos, de onde derivam o JavaFx Script e o JavaFX mobile.

  • Java FX Script

O Java FX Script tem uma forma de sintaxe bem parecida com o Javascript e o Scala Vector Graphics (SCG), com ele os programadores desenvolverão RIA’s com mais rapidez e facilidade, além de novos serviços que poderão ser usados virtualmente em qualquer dispositivo como DVD’s com Blu-ray, celulares, nos navegadores, nos desktops e nos set-top boxes. É focado na experiência do usuário, em especial, conteúdos animados e é também muito mais fácil de usar por não ser uma linguagem procedimental.

Exemplos feitos pela Sun
java2ya9.png java3ex6.png java4dj0.png

Veja como ficou mais fácil de desenvolver e consequentemente mais fácil de ler o código fonte.
Observe essa comparação entre um Hello World em Swing e em JavaFX:

// em Swing
public class HelloSwing {
public static void main(String[] args) {
JFrame frame = new JFrame("Meu programa em Swing");
JLabel label = new JLabel("Olá Mundo");
Dimension d = new Dimension(300, 50);
frame.setSize(d);
frame.add(label);
frame.setVisible(true);
}
}

// em JavaFX
Frame {
title: "Meu programa em javafx"
width: 200
height: 50
visible: true
content: Label {
text: "Olá mundo"
}
}

Já foi lançado um plugin para o Eclipse:
Para instalar, siga os passos abaixo:

1. Inicie o Eclipse SDK.

2. Na barra de menu, selecione Help > Software Updates > Find and Install…

3. Na janela do Install/Update, escolha Search for new features to install e clique em Next.

4. Clique em New Remote Site…

5. Na janela New update site escreva JavaFX no campo Name.

6. No campo URL, escreva http://download.java.net/general/openjfx/plugins/eclipse/site.xml.

7. Clique em OK.

8. Na janela Install Window, clique em Finish.

A janela de atualização aparecerá.

9. Na janela do Update, selecione JavaFX > JavaFX node > e clique em Next.

10. Aceite a licença e clique em Next.

11. Clique em Next e Finish.

12. Na janela Verification, selecione Install All.

13. Reinicie o Eclipse SDK.

Especificação da linguagem JavaFX Script:

https://openjfx.dev.java.net/JavaFX_Programming_Language.html

Video sobre o JavaFX Script:

  • Java FX Mobile

Já o JavaFX Mobile, foi planejado para plataformas móveis, um sistema completo de software. Ele esta disponível para fabricantes de telefones, operadoras, e outras empresas interessadas em simplificar e ao mesmo tempo acelerar o desenvolvimento de softwares padronizados.
As principais características são:

  • Serviços básicos de mensagens (SMS, MMS,etc)
  • Browser
  • Suporte a música e vídeos
  • Total integração com a API do Java
  • Software updates
  • Frameworks de segurança
  • Multimídia
  • Telefonia
  • Funções Gráficas

Por utilizar a API do java como base, já existente, o JavaFX Mobile utiliza um conjunto de soluções pré-integradas que faz com que os fabricantes de dispositivos móveis se preocupem com o desenvolvolvimentos de novos serviços. Dessa forma poderão ser acrescentadas bibliotecas, middlwares e aplicações Java de forma mais fácil, acelerando assim o desenvolvimentos de aplicações com interfaces mais ricas, seguras e eficientes.

serviços e aplicações oferecidos no JavaFX Mobile.

javamobilebg8.jpg

O diferencial do JavaFX

Atualmente o mercado está liderado pelo Flash, da Adobe. Na década de 90, a Sun lançou os Applets na tentativa de atacar esse tipo de mercado, mais o Java não conseguiu vingar. O JavaFX é a tentativa de retomar esse mercado. Ao mesmo tempo a Microsoft entra na disputa com o Silverlight.
Alguns motivos responsáveis pelo fracasso dos Applets foram:

  • Difícil de desenvolver: programação “pura” em Swing é chato e improdutivo;
  • Falta de boas ferramentas para desenvolvimento visual.

Os aplicativos do JavaFX podem ser executados em um extenso conjunto de dispositivos habilitados para Java, os provedores de conteúdo podem, rapidamente, acrescenta-los aos seus dispositivos, é possível, por exemplo, fazer chamadas para métodos ou criação de objetos de forma procedural, como em Java.
As novas tecnologias, que incluem os padrões de API’s de dispositivos Móbile Services Architecture, estão estreitamente integrados no JavaFX Móbile, dando aos desenvolvedores um grande conjunto de recursos altamente portáteis. Estes produtos ajudam a criar aplicativos visualmente irresistíveis, como vídeos, áudio, mapas, marshups que podem ser padronizados tanto no celular quanto aparelhos de TV entre tantos outros. Construída em torno de padrões abertos, as tecnologias JavaFX oferecem às empresas que criam rich internet aplications acesso mais rápido ao mercado e consistência aprimorada para aplicativos e serviços. Ele permite que os seus consumidores, que estão constantemente conectados, achem sempre o que estão procurando, além da Lista de Compreensão e Arrays, Concorrência, Classes e Objetos, Triggers e Reflections.

  • Lista de Compreensão e Arrays – a lista é composta por uma ou mais listas de entrada, um filtro opcional e uma expressão geradora;
  • Concorrência – excelente recurso para preenchimento de combos e listas para exibição na Interface com o usuário;
  • Classes e Objetos – as classes são criadas declarativamente, ficando a implementação das funções e operações fora do corpo da classe;
  • Triggers – funcionalidade inserida para resolver a falta de construtores das classes e a não existência de métodos set/get;
  • Reflexão – usado da mesma forma que em Java para acessar classes, atributos, funções e operações através da palavra reservada class.

Relação com a Disciplina de Compiladores

O JavaFX é uma linguagem de script possui características declarativas e tipos estáticos executados sobre uma máquina virtual Java. O JavaFX está incluso no conceito de interpretadores (a tradução e a execução do código são feitas ao mesmo tempo, não existe tempo de compilação e tempo de execução).
O JavaFX Móbile, planejado para plataformas móveis, está incluso no conceito de compiladores (a linguagem objeto do compilador pode ser de alto ou de baixo nível, a linguagem fonte deve ser de alto nível, o código gerado pela compilação será executado posteriormente, neste outro momento serão fornecidos os dados e saídas particulares a cada execução).

Referências
http://blog.caelum.com.br/2007/07/18/falando-em-java-introducao-ao-javafx/
http://www.garotosdeweb.com/index.php/javafx/primeiras-impressoes-do-javafx/
http://idgnow.uol.com.br/computacao_corporativa/voce/idgcoluna.2007-09-19.0923553398/
http://www.sun.com/software/javafx/

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License