Falando em Java: Introdução ao JavaFX
Postado em 18. jul, 2007 por Sérgio Lopes em Java
Atualização: Segunda parte do artigo de JavaFX aqui.
No último Falando em Java apresentei uma palestra sobre JavaFX, apresentando a tecnologia e especulando sobre o futuro desse mercado. É a grande aposta da Sun no mercado das Rich Internet Applications – RIA, onde o Adobe Flex hoje lidera.
O JavaFX foi apresentado[1] pela Sun no último JavaOne em maio desse ano como uma nova estratégia da empresa para levar o Java ao desenvolvimento fácil de interfaces ricas com o usuário. Dois produtos foram anunciados e novidades foram prometidas para breve. Hoje o que temos é o JavaFX Mobile e o JavaFX Script.
O JavaFX Mobile é 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” a la iPhone. Seria voltado ao desenvolvimento fácil de aplicativos bonitos e usáveis em ambiente móvel.
Já o JavaFX Script é uma nova linguagem de programação pensada para o desenvolvimento de interfaces Swing/AWT/Java2D de forma mais fácil do que hoje. A idéia da Sun é 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.
Hoje o mercado de aplicativos ricos embutidos no navegador é dominado pelo Adobe Flash (diretamente ou através do Flex, por exemplo). Os Applets foram a primeira tentativa da Sun de atacar esse mercado lá no começo da década de 90 mas o Java não vingou nesse mercado; o JavaFX hoje é a tentativa de retomá-lo. Isso ao mesmo tempo que a Microsoft entra com o Silverlight e onde JavaScript/AJAX consegue fazer já boa parte do que essas tecnologias se propõe a fazer.
Alguns problemas frequentemente apontados para o fracasso dos Applets:
Todas essas questões já estão sendo vislumbradas pela Sun. O Java hoje não é lento (era, uma década atrás) e estima-se que 91% dos PCs possuam Java instalado. Mas ainda temos problemas: o tempo de Startup da JVM ainda é alto (em grande parte devido às operações de I/O para subir a VM) e o download é grande. Ambas as questões devem ser solucionadas com a chamada Consumer JRE[2], uma JRE modular onde se baixa apenas os componentes necessários para rodar as aplicações normais e módulos extra são baixados automaticamente sob demanda.
As questões da dificuldade de desenvolvimento e falta de boas ferramentas são justamente o foco do JavaFX.
O JavaFX Script é uma linguagem de script declarativa e orientada a objetos, com sintaxe simplificada para desenvolvimento de GUIs. É bem diferente do Java tradicional mas já possui plugins para Eclipse e Netbeans para facilitar o desenvolvimento.
Veja uma 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"
}
}
Note a semelhança com linguagens de marcação como XML, onde a forma declarativa e aninhada de se agrupar os componentes facilita o desenvolvimento e a leitura do programa.
Você pode executar esse exemplo através do Java Web Start, clicando aqui.
Na palestra, desenvolvi um pedaço de uma loja virtual com efeitos 3D e animações. Usamos nesse exemplo recursos avançados do JavaFX como binding de componentes para classes de modelo, buscas otimizadas em arrays, triggers para eventos em variáveis, Java2D, animações e outros. No próximo artigo trato desses assuntos com mais detalhes, mostro como configurar o ambiente de desenvolvimento, bem como outras coisas como concorrência de Threads, integração com o Java e conectividade.
Você pode executar o demo clicando aqui.
Os exemplos são apresentados em Java Web Start em formato jar. O ambiente de execução do JavaFX é distribuído junto e possui 2MB; nas futuras versões do JRE, o JavaFX deverá vir embutido, diminuindo consideravelmente o tamanho do download.
Para ver os fontes, basta descompactar o jar e ver os arquivos .fx. O código fonte é de propriedade da Caelum, exceto o componente DisplayShelf desenvolvido por Chris Oliver e liberado no Site dele. [5]
Até o próximo artigo!
Atualização: Segunda parte do artigo de JavaFX aqui
Algumas referências:
[1] Apresentação do Chris Oliver sobre o JavaFX/F3 no JavaOne
[2] Palestra apresentada no JavaOne sobre o mercado Desktop Java e a Consumer JRE
[3] Tutorial para iniciantes em JavaFX
[4] Especificação da linguagem JavaFX Script
[5] Blog do Chris Oliver, desenvolvedor do JavaFX
[6] Projeto OpenJFX com a implementação do JavaFX e muito material
Sérgio Lopes
Mais sobre o autor
21 Respostas para “Falando em Java: Introdução ao JavaFX”
Trackbacks/Pingbacks
-
-
novembro 10, 2007
[...] tempo que postei a primeira parte dessa introdução ao JavaFX, baseada na minha palestra no Falando em Java 2007. Se você não leu, leia primeiro aquele artigo [...]
-
-
dezembro 12, 2008
[...] Falando em Java: Introdução ao JavaFX, 2007-07-18, e Falando de JavaFX, parte 2, 2007-11-10, por Sérgio Lopes no Blog da Caelum Ensino e Inovação em Java. [...]
-
-
janeiro 28, 2011
[...] tempo que postei a primeira parte dessa introdução ao JavaFX, baseada na minha palestra no Falando em Java 2007. Se você não leu, leia primeiro aquele artigo [...]
ASSINE NOSSO RSS




Nelson
19. jul, 2007
O demo da loja virtual está abrindo o “Olá Mundo” em vez da loja virtual.
mchiareli
25. jul, 2007
Sergio, a aplicação que voce mostrou noa “falando em java” mostrava uma aplicação javafx rodando em um frame que parecia ser swing, como fica o javafx em relação a web, a mesma aplicação podera rodar no browser tem algum exemplo de código?
Adelio
27. jul, 2007
Sergio,
Conforme o comentátio do Mchiareli, se tiver algum exemplo, por
gentileza gostaria também de ver.
Obrigado.
Sergio Lopes
27. jul, 2007
Oi pessoal!
No próximo artigo eu coloco um exemplo de integração no Site através de Applet. Pra quem quiser ir pesquisando antes, tem alguma coisa aqui:
http://jukka.us/javafxapplet/article/index.html
[]‘s
Sergio
vandeir
19. set, 2007
Sergio, blz cara sou o vandeir e to fazendo um TCC sobre javaFX me ajudo muito esse artigo q tem aqui vc poderia me ajudar a me passas uns conteudo de javaFX, estou tendo muita dificuldade por causa q so tem conteudo e ingles obrigado e-mail vandeir_bassoli@hotmail.com obrigado
Ana
23. set, 2007
Olá!
Gostaria de ver um exemplo de uma aplicação com JavaFX Mobile!
[ ]s
Silveira Neto
30. set, 2007
Eu gostei de ter uma alternativa ao Flash e ao Silverlight, sendo que livre e já com a base do Java. Espero que dê certo.
eduardo
03. out, 2007
Sobre o artigo achei interessante saber que agora temos mais uma possibilidade de criação, agora dizer que flash só é o que pois se preocupa primeiro com designers, não condiz, pois que não programa em flash já morreu faz tempo, desde as versoes mais antigas as linguaguens AS 1.0 e 2.0, sempre fizeram parte de qualquer projeto (bem feito) de web. realmente desenvolver aplicações com applets é muito chato e ruim…porem comparar flash com applet e comparar a praia grande com Caribe.
Francisco
06. out, 2007
Qual seria a vantagem de eu migrar meus sistemas gigantes em Swing para JavaFX Script?
Inocêncio
11. nov, 2007
Bom a introdução, porém você disse que a linguagem JavaFX Script parece com XML, porém não tem nada haver com XML e sim foi baseada usando o YAML (o mesmo de marcação que o Ruby usa).
http://en.wikipedia.org/wiki/Yml
velson
14. jan, 2008
queria saber como baixar o criador de jogos de perguntas e respostas
velson
14. jan, 2008
queria saber como baixar o criador de jogos de perguntas e respostas me ajude a conseguir isso.
Marco Zugaib
04. fev, 2008
Não consegui achar os jar. Como faço para ver os códigos?
Fiquei muito interessado, já que estou começando a desenvolver muitas aplicações em Desktop. Uso o NetBeans para desenhar, mas eu prefiro o Eclipse mesmo. Acho que agora vou conseguir aposentar o NetBeans!
Essa da loja usa Flash? Ficou com a cara do iTunes!
Sérgio Lopes
05. fev, 2008
Oi Marco!
A loja não é em Flash… é tudo JavaFX!!
Você pode baixar os jars direto http://www.caelum.com.br/javafx/resources/demo-lojavirtual.jar
Sérgio
Glauber Matos
20. fev, 2008
Sou fã de Java mas, acredito que esta tecnologia pode vingar em alguns aspectos mas em outros não. Por exemplo, construir soluções Web com Java Fx é lamentavel dado que não é possivel rodar no browser. Mesmo que seja possivel fazer alguma adaptação com applet, ainda sim é ruim e não se compara a facilidade de se obter um plugin flash pelo seu tamanho de download e pela velocidade de startup de uma exibição em flash. Nestes aspectos Java FX fica muito, mas muito atrás do flash e do silverlight. Já o Java FX Mobile é uma boa iniciativa.
stereobroo
04. dez, 2008
Ola a todos,
nenhum dos links funciona …
Help, brigado
facildelembrar
19. abr, 2009
Fiz uma rápida comparação entre as tecnologias flash, flex, actionscript puro, silverlight, java + scenegraph e javafx. Quem estiver interessado, pode achar o artigo em http://my.opera.com/facildelembrar/blog/comparacao-rias-parte-2-programas-simples
eU
27. mai, 2009
a referencia [3] esta fora do Ar..
O link certo é :
https://openjfx.dev.java.net/ja/Getting_Started_With_JavaFX.html