Bom, estou vendo o material da Sun sobre o JavaFX.
A proposta é muito interessante, mas, em nenhum momento foi explicitado como fazer com que uma aplicação Java utilize o JavaFX para a interface gráfica.
Como eu faço esta união?
Boa tarde Anderson.
Segue abaixo uma pequena expliacação sobre JavaFX.
Espero que te ajude.
JavaFX
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:
-
Inicie o Eclipse SDK.
-
Na barra de menu, selecione Help > Software Updates > Find and Install?
-
Na janela do Install/Update, escolha Search for new features to install e clique em Next.
-
Clique em New Remote Site?
-
Na janela New update site escreva JavaFX no campo Name.
-
No campo URL, escreva http://download.java.net/general/openjfx/plugins/eclipse/site.xml.
-
Clique em OK.
-
Na janela Install Window, clique em Finish.
A janela de atualização aparecerá.
-
Na janela do Update, selecione JavaFX > JavaFX node > e clique em Next.
-
Aceite a licença e clique em Next.
-
Clique em Next e Finish.
-
Na janela Verification, selecione Install All.
-
Reinicie o Eclipse SDK.
Especificação da linguagem JavaFX Script:
//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).
Olá,
RenatoLeme muito bom seu post, porém esta baseado no que está no site oficial do projeto. Acho que você não conseguiu tirar a dúvida do AndersonDias que é a mesma que é a minha - Passei um tempo procurando porem não encontrei.
Alguém já efetuou essa união?
Obrigado
Anderson,
O código JavaFX pode chamar classes java normalmente, basta colocar os imports.
E, do codigo java, voce pode invocar o JavaFX com a Java Scripting API: https://scripting.dev.java.net/
[]'s
Olá,
Só reforçando o que o sergio disse, existe um exemplo no site do projeto que utiliza uma classe “normal” dentro de uma tela feita com Java FX
[code]import javafx.ui.*;
import java.lang.System; // import conforme o sergio havia dito.
class ButtonClickModel {
attribute numClicks: Number;
}
var model = new ButtonClickModel();
Frame {
width: 200
menubar: MenuBar {
menus: Menu {
text: "File"
mnemonic: F
items: MenuItem {
text: "Exit"
mnemonic: X
accelerator: {
modifier: ALT
keyStroke: F4
}
action: operation() {
System.exit(0); // utilização da classe "normal" ....
}
}
}
}
content: GridPanel {
border: EmptyBorder {
top: 30
left: 30
bottom: 30
right: 30
}
rows: 2
columns: 1
vgap: 10
cells:
[Button {
text: "I'm a button!"
mnemonic: I
action: operation() {
model.numClicks++;
}
},
Label {
text: bind "Number of button clicks: {model.numClicks}"
}]
}
visible: true
}
[/code]
Valew pessoal…
Abraços
Obrigado pelas respostas, mas, a minha dúvida é:
Eu tenho uma aplicação em MVC, por exemplo, e preciso em algum momento, em um Main, chamar a tela do JavaFX.
Estudando por ai encontrei que se eu colocar FXShell.main(“nomeDoArquivoFx”); ele executa o script pra mim.
Mas, encontrei o seguinte problema:
Eu tenho um pacote src/
e dentro dele tenho os meus fontes. Quando compilo os .class vão para o pacote bin/.
Mas a partir dai os FX não são mais encontrados, pois não estão no bin/ e não consigo os executar.
Existe algum projeto já integrado que sirva de exemplo?
Com relação ao que postei agora a pouco encontrei uma aplicação exemplo da Sun que mostra a integração de um projeto JavaSE e JavaFX.
Aqui está o link para o baixar: http://molgav.nn.ru/surikov/files/curr.zip
É um conversor de moedas, eu acho
Enjoy it…
Vou estudar um pouco mais, e ainda aceito a sugestão de outras aplicações
Problemas com JavaFX chamado de dentro de uma classe Swing
Alguém sabe como chamar um arquivo.fx de dentro de uma classe comum em java?
Estou tentando executar JavaFX dentro de uma aplicação em Swing. A ídeia é usar os recursos de imagens vetoriais do JavaFX em recursos de animação e interação dentro de uma aplicação Swing. Alguém tem alguma sugestão?
Estou tentando o código abaixo, mas dá sempre not found “Main.fx”, não encontra o arquivo Main.fx. Já até inclui no CLASSPAH e não adiantiu.
import net.java.javafx.*;
import net.java.javafx.FXShell;
public class Teste {
public static void main(String[] args) {
FXShell.main(new String[] {“c:\Main.fx”});
}
}