Back-End

11 out, 2012

Conheça JavaFX 2 e o seu potencial

Publicidade

O JavaFX não é uma tecnologia nova, e já deve ser velha conhecida da maioria dos analistas e programadores. Mas ela começou a ganhar destaque quando a Oracle, hoje a mantedora do código Java, embutiu o JavaFX na versão 7 da máquina virtual, possibilitando que a tecnologia funciona de forma nativa no computador, sem necessidade de instalações adicionais.

O JavaFX também foi adicionado ao JDK e funciona de forma integrada a IDE NetBeans, que de certa forma facilita o seu aprendizado e utilização.

Mas o que é JavaFX?

O JavaFX é uma plataforma para criar aplicações ricas para a Internet. Pode-se pensar como uma tecnologia similar ao Flex Framework ou Silverligth. Aplicações ricas são usadas principalmente para manipulação de interfaces que envolvem multimídia, como vídeo, som, manipulação vetorial de imagens e outros.

Mas o JavaFX não tinha “morrido”?

Sim e não. Estamos abordando o JavaFX 2 e não a versão 1, que possuía detalhes que não agradavam os desenvolvedores. Em 2006, o “Macromedia Flex” passou por um processo semelhante também, onde somente a versão 2 despertou o interesse dos desenvolvedores. Nesta versão 2, o run time do JavaFX é nativo ao Java 7, que estará instalado em quase todo o computador até o final de 2012. O Javafx 2 tem total integração com Java 7 e JDK 7, contendo uma vasta API para sua utilização.

Qual o potencial do JavaFX?

O Netbens 7.2 já oferece suporte ao JavaFX contendo exemplo e wizards que facilitam a criação dos projetos em JavaFX. Além do NetBeans existe o JavaFX Scene Builder, no qual é possível desenhar por completo uma tela e usar o código XML gerado neste desenho.
Por ser a nova aposta da Oracle no desenvolvimento de aplicações, o JavaFX pode vir a substituir o já conhecido SWING, sendo adaptado também para o desenvolvimento de aplicações corporativas em grande escala, com suporte a multimídia. São apostas da Oracle portar o javaFX para mobile e em um futuro próximo até televisões e outros dispositivos.

Pontos chave do JavaFX

  • JavaFX é Java, então você não precisará aprender uma nova linguagem para desenvolver aplicações;
  • Possui integração completa com Java 7 e JDK 7;
  • Possui aceleração gráfica para desenvolvimento avançado;
  • Possui uma linguagem declarativa chamada FXML, usada para criação da interface;
  • Possui um motor multimídia para renderização de vídeos, incluindo streaming;
  • Possui um componente capaz de embutir páginas HTML (webkit);
  • Possui uma boa quantidade de componentes de interface (Textbox, combobox, grid, etc);
  • Disponível para Windows, Mac e Linux.

Instalação

Vamos aprender como deixar tudo funcionando para criar aplicações em JavaFX. Basicamente, o que nós iremos precisar é:

  • Java 7 (runtime)
  • Java SDK 7
  • JavaFX Scene Builder 1.0
  • Netbeans 7.2

Java 7

A instalação do Java 7 é necessário para que possamos rodar as nossas aplicações JavaFX no ambiente desktop. Talvez o Java até já esteja instalado em sua máquina, mas é bom conferir se a versão instalada é a 7. Para instalar, acesse www.java.com e clique no botão vermelho “Download Gratuito do Java”. Faça o download e instale!

Java SDK 7

O SDK é o kit de desenvolvimento de software do Java. Você precisa dele para desenvolver as aplicações em JavaFX. Quem for somente usar a aplicação (seu cliente), necessita apenas do Java e não do SDK.

Acesse esse endereço e localize o JDK na versão 7 (neste artigo seria a 7u7). Faça o downlod e instale. Guarde onde o Java7 foi instalado, você precisará dele no NetBeans. No meu caso, é: C:\Program Files\Java\jdk1.7.0_02.

JavaFX Scene Builder 1.0

Acesse este endereço e instale este aplicativo, que será usado para criar telas com o JavaFX.

Netbeans 7.2

A IDE que utilizaremos em todos os artigos é a NetBeans, atualmente na versão 7.2.

E clique no botão Download. Veja que existem várias plataformas suportadas (Java Se, Java EE etc.). Recomendo que você use a versão completa (última coluna, com aproximadamente 261 MB). Baixe e instale. A dica aqui é pedir uma instalação personalizada e instalar também o servidor TomCat, que não vem como padrão. Você poderá utilizá-lo algum dia.

Configure o NetBeans 7.2

Caso seja necessário, configure o Netbeans para aceitar a versão 1.7 do Java. Com o Netbeans aberto, acesse o menu Ferramentas/Plataformas Java e verifique se “JDK 1.7” está marcado como padrão e se existe a “Plataforma JavaFx”:

Como deve estar a configuração do Netbeans para rodar aplicações em JavaFX

Se a versão 1.7 não estiver default, adicione-a, de acordo com o diretório de instalação do jdk 1.7.

Criando o primeiro projeto

Agora vamos criar o simples HelloWorld em JavaFX. Com o netbeans aberto, acesse o menu Arquivo e depois Novo Projeto. Na coluna Categorias, escolha a pasta JavaFX e na coluna Projetos, escolha o item Aplicação JavaFX. Clique em próximo e na próxima tela, deixe tudo padrão e clique em Finalizar.

O projeto é criado e, “para nossa alegria”, o HelloWorld está pronto. O próprio NetBeans cria o código HelloWorld para que possamos ter uma certa noção de como usar o JavaFX. Clique no botão run (seta verde) e veja o JavaFX em uma janela, com o botão Say Hello World na tela.

Analisando o código

O código gerado pelo NetBeans está descrito logo a seguir. Vou apenas exibir o método start, que é o método “entry point” desta aplicação:

    
@Override
public void start(Stage primaryStage) {
    Button btn = new Button();
    btn.setText("Say 'Hello World'");
    btn.setOnAction(new EventHandler() {
        @Override
        public void handle(ActionEvent event) {
            System.out.println("Hello World!");
        }
    });

    StackPane root = new StackPane();
    root.getChildren().add(btn);

    Scene scene = new Scene(root, 300, 250);

    primaryStage.setTitle("Hello World!");
    primaryStage.setScene(scene);
    primaryStage.show();
}

Neste exemplo, temos diversos conceitos que devem ser entendidos assim que começamos a trabalhar com JavaFX. Se você não entender o conceito, terá dificuldades para prosseguir. Como forma de facilitar este entendimento, vou alterar (e somente desta vez) o nome das variáveis de forma que fique fácil compreender alguns conceitos do JavaFX. Veja:

@Override
public void start(Stage palco) {
    Button botao = new Button();
    botao.setText("Say 'Hello World'");
    botao.setOnAction(new EventHandler() {
        @Override
        public void handle(ActionEvent event) {
            System.out.println("Hello World!");
        }
    });

    StackPane noRaiz = new StackPane();
    noRaiz.getChildren().add(botao);

    Scene cena = new Scene(noRaiz, 300, 250);

    palco.setTitle("Hello World!");
    palco.setScene(cena);
    palco.show();
}

Repare que foram alterados o nome das variáveis para palco, cena e raíz. Através destes três conceitos, pode-se entender melhor como é a mecânica de uma aplicação JavaFX. Tudo começa com o palco. O palco, assim como um palco de teatro, é o lugar onde tudo acontece. No JavaFX, o palco (stage) é a camada mais alto nível da aplicação, formada pela janela que contém o título, os botões fechar e minimizar, etc.

Dentro do palco, ocorre a cena, que é equivalente a uma cena de uma peça de teatro. Para cada cena, existem os nós, que são semelhantes aos objetos que estão em uma peça de um palco de um teatro (ufa!). Um nó pode conter vários outros nós, e são esses nós que formam o desenho da tela. A figura a seguir ilustra esta hierarquia:

 

Esta analogia com um teatro é necessária para que você possa compreender os conceitos de stage, scene e node. Eles formam o básico de um HelloWorld no JavaFX. Através desta explicação básica, poderemos criar novos artigos com exemplos mais complexos e assim mostrar todo o poder do JavaFX. Deixem comentários com o tipo de aplicação que queiram desenvolver!