Atenção: esse artigo tem uma palestra complementar. Clique e assista!

De que se trata o artigo:

Damos continuidade à cobertura da JavaFX, dessa vez examinando sua versão 1.3. Investigaremos itens como novos controles, facilidades de estilização com CSS, a nova fonte Amble, o novo perfil JavaFX TV, e as melhorias de desempenho desta versão. Também adiantaremos a cobertura do novo toolkit gráfico Prism, que apareceu como early access na versão 1.3 mas talvez já tenha status de produção no update 1.3.1 (que já deve estar disponível quando o leitor receber esta Edição). Também especulamos sobre o futuro do desenvolvimento GUI, que está passando por uma transição para o paradigma de scene graphs.


Para que serve:

Além do leitor que já tem se interessado pela JavaFX, espero que o artigo seja útil para qualquer desenvolvedor de GUIs e/ou programação gráfica. A JavaFX ainda é nova e ainda está “subindo a ladeira” da adoção, enfrentando concorrência tanto de outras plataformas comparáveis da Adobe e Microsoft, quanto por toolkits mais tradicionais como a Swing. Seja qual for sua preferência, é interessante acompanhar a evolução destas plataformas – novas linguagens, frameworks, paradigmas de programação.


Em que situação o tema é útil:

Para quem não acompanhou os artigos anteriores, a JavaFX é a implementação Java do conceito de RIA, que a Wikipédia define como “aplicações web que têm muitas características das aplicações desktop”. Não é ainda uma boa definição, pois o ‘R’ do RIA é associado a facilidades como suporte a mídia, animação e outros efeitos gráficos. Já o ‘I’ é associado ao acesso de recursos web (“mashups”), mas isso não é obrigatório, sendo tecnicamente possível usar as ditas plataformas RIA (basicamente JavaFX, Flash e Silverlight) para criar aplicações “locais”.

Neste artigo retomamos a cobertura da plataforma JavaFX, examinando seu release 1.3, finalmente liberado em 22 de abril. Apesar do atraso (a v1.3 era originalmente esperada para novembro de 2009), a plataforma continua evoluindo rapidamente. Já terminou, no entanto, a fase de prometer que “a próxima versão que é para valer”. A JavaFX 1.3 amadurece toda a fundação lançada nos primeiros releases, e resolve boa parte dos problemas remanescentes: mais controles, desempenho, suporte do IDE, novo perfil para TV, e várias melhorias. Podemos dizer com segurança que a versão atual já permite criar muitos tipos de aplicações visuais com excelentes resultados.

Neste artigo vamos examinar as novidades da JavaFX 1.3, dando também uma olhada na última versão do suporte à JavaFX no NetBeans. Para acompanhar o artigo você só precisa instalar o NetBeans 6.9 (usei o RC1, mas a versão final – esperada para 15 de junho – estará disponível quando você ler este artigo. O NetBeans 6.8 só suporta a JavaFX 1.2, não podendo ser usado).

Novos componentes de GUI (Controles)

Começando pelo item mais importante, a JavaFX já oferece um conjunto razoável de controles de GUI. Na Tabela 1, ilustrei toda a “história” dos controles da JavaFX desde seu lançamento. (Em fonte normal listei os controles concretos; em itálico, classes abstratas ou auxiliares.)

Controle

Introdução

Control

JavaFX 1.1

Skin

TextBox

Behavior

JavaFX 1.2

Button

ButtonBase

CheckBox

Hyperlink

Keystroke

Label

Labeled

ListView

OverrunStyle

ProgressBar

ProgressIndicator

RadioButton

ScrollBar

Skin

Slider

TextInputControl

ToggleButton

ToggleGroup

Cell

JavaFX 1.3

ChoiceBox

IndexedCell

ListCell

PasswordBox

ScrollBarPolicy

ScrollView

Separator

Toggle

Tooltip

CheckMenuItem

JavaFX 1.3

(Preview)

JavaFX 1.4

(Release)

CustomMenuItem

Menu

MenuBar

MenuButton

MenuItem

MenuItemBase

PopupMenu

RadioMenuItem

SplitMenuButton

ToolBar

TreeCell

TreeItem

TreeItemBase

TreeView

Tabela 1. Controles da JavaFX.

Em comparação com a versão anterior, a JavaFX 1.3 adiciona controles para entrada de senha (PasswordBox), caixa de seleção (ChoiceBox), painel de scroll (ScrollView), separador (Separator) e balões de informação (Tooltip). Também melhora alguns controles pré-existentes, em especial ListView, Slider e TextBox. Este último pode agora ser multilinha, substituindo a necessidade de um controle “TextArea”. A nova Cell API (classes Cell, IndexedCell, ListCell) permite customizar a apresentação de itens de uma ListView e outros controles que também possuam divisão em células.

A JavaFX 1.3 inclui também alguns controles “preview”, que têm qualidade de pré-release, mas já podem ser usados em aplicações com algum cuidado – e com a ciência que suas APIs definitivas, na JavaFX 1.4, poderão ter alterações incompatíveis. Estes controles são menus de vários tipos, toolbars e árvores. A JavaFX 1.4 trará também um controle TableView, mas este não veio na versão 1.3 nem na forma de preview (talvez venha, em preview, em algum update 1.3.x).

A JavaFX não tem releases beta públicos, mas essa nova estratégia de “APIs preview” resolve parte do problema. As APIs atualmente em preview irão evoluir nos updates de manutenção (a JavaFX 1.3 já tem pelo menos o 1.3.1 e 1.3.2 planejados), e terão qualidade de produção e API estável a partir da versão 1.4.

...

Quer ler esse conteúdo completo? Tenha acesso completo