Saiba como anda o JavaFX 2.0

51 respostas
Jesuino_Master

Um dos anúncios mais chocantes do JavaOne de 2010 foi o fim do JavaFX Script, mas ninguém esperava uma volta tão positiva.

Com API Java e muitas melhorias no desempenho, JavaFX 2.0 já está aparecendo na blogsfera e no twitter desde o início de fevereiro, quando iniciaram as distribuições “Early Access” para parceiros da Oracle.
Adam Bien e Peter Pilgrim, dois nomes bastante conhecidos na comunidade Java, postaram importante informações sobre a versão do novo JavaFX, que deverá vir dentro da JDK 8 e ser liberado no final desse ano como uma API (um simples Jar para você colocar no seu classpath).

Quem quiser pode se inscrever no programa beta (que deve ser liberado durante o segundo quartil desse ano) da Oracle para possivelmente conseguir acesso à API:
http://www.oracle.com/dm/11q1field/javafx_beta_en.html

Para saber mais:
Screencast do Peter Pilgrim: http://www.vimeo.com/20351975
Blog do Adam Bien sobre JavaFX 2: http://www.adam-bien.com/roller/abien/entry/hello_javafx_2_back_to
Mais posts sobre o JavaFX 2 no blog de Jonathan Giles: http://jonathangiles.net/blog/
Twitter oficial do JavaFX: http://twitter.com/#!/javafx4you

51 Respostas

Jesuino_Master

Está muito boa essa versão, acredito que vai agradar a todos!

pena que a parte mobile, a qual atraiu muitas pessoas, não está inclusa :frowning: Mas faz sentido que a oracle tenho mais foco, a falta de foco fez muito mal para o desenvolvimento do JavaFX…

Gostaria de ouvir[ler] o que o pessoal acha :slight_smile:

otaviojava

A eliminação do fx script na minha opinião foi excelente :slight_smile:

M

Bom, melhor que o Swing ele tem tudo pra ser.

Agora, a área Mobile é que até agora não vi notícia.

otaviojava

li sobre o futuro do javame na java magazine nª 84
Parece que será lançado um acelerador java script e html5 além de ser um browser no toolkit.
O javame vai ganhar uma cara mais web

L

andei mexendo com esssa ferramenta …

achei muito legal seu layout.

o visual achu fo#$#%$a

victorcosta
package com.abien.hello;

import javafx.application.Application;
import javafx.application.Launcher;
import javafx.collections.Sequence;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;

public class Main extends Application{


    @Override public void start() {
        Stage stage = new Stage();
        stage.setTitle("Hello Java FX");
        stage.setResizable(false);

        Group root = new Group();
        Scene scene = new Scene(root,80,20);
        stage.setScene(scene);

        Sequence children = root.getChildren();
        children.add(new Label("Hello Java FX 2"));
        stage.setVisible(true);

    }

    public static void main(String[] args) {
        Launcher.launch(Main.class, args);
    }
}

Isso aqui tá muito parecido com Swing ainda na minha opinião

Tinha que ter uma DSL com as novas features do Java como Maps literais e Closures, algo parecido com o JavaFX Script, mas em Java

chun

Ao meu ver , o JavaFX continua um vaporware…

Vai demandar mais que 10x o investimento atual para tornar-se mercadologicamente real.

Sorte do Flash e do SilverLight…

Veja o caso do SilverLight… milhares de dolares investidos para um uso praticamente ínfimo… cada vez mais o HTML5 está trucidando “flashes like”…

Sei que não faz tudo que o flash faz , mas enfim…

JavaFX na minha opiniao nasceu morto.

chun
victorcosta:
package com.abien.hello;

import javafx.application.Application;
import javafx.application.Launcher;
import javafx.collections.Sequence;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;

public class Main extends Application{


    @Override public void start() {
        Stage stage = new Stage();
        stage.setTitle("Hello Java FX");
        stage.setResizable(false);

        Group root = new Group();
        Scene scene = new Scene(root,80,20);
        stage.setScene(scene);

        Sequence children = root.getChildren();
        children.add(new Label("Hello Java FX 2"));
        stage.setVisible(true);

    }

    public static void main(String[] args) {
        Launcher.launch(Main.class, args);
    }
}

Isso aqui tá muito parecido com Swing ainda na minha opinião

Tinha que ter uma DSL com as novas features do Java como Maps literais e Closures, algo parecido com o JavaFX Script, mas em Java

Closures ? Vai sonhando...

jeanlopes

Acho que o JavaFX 2.0 tem tudo para ser o novo Swing.

As aplicações com certeza passarão a ter uma outra “cara”.

Fico muito triste de o JavaFXScript ter acabado, pois sua simplicidade e naturalidade me encantam cada dia mais. Mas vem ai o Visage (do Stephen Chin) que deve cobrir esta lacuna.

Como já foi dito o JavaFX 2.0 ficou muito com cada de JAVA, muito quadradinho. O que se fazia com uma unica declaração de 3 linhas agora precisa de inumeros métodos, linhas intermináveis e as Interfaces.

O BIND com ON REPLACE e WITH INVERSE do FXScript é impagável e a maior sacada que poderia colocar no Java.

Hoje desenvolvemos as interfaces em JavaFX 1.3 e as lógicas e o trabalho sujo em Java. uma dobradinha que tem dado certo.

aluisiodsv

Se o Java ME ganhar uma cara web eu tô dentro ! =]

Jesuino_Master
victorcosta:
package com.abien.hello;

import javafx.application.Application;
import javafx.application.Launcher;
import javafx.collections.Sequence;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;

public class Main extends Application{


    @Override public void start() {
        Stage stage = new Stage();
        stage.setTitle("Hello Java FX");
        stage.setResizable(false);

        Group root = new Group();
        Scene scene = new Scene(root,80,20);
        stage.setScene(scene);

        Sequence children = root.getChildren();
        children.add(new Label("Hello Java FX 2"));
        stage.setVisible(true);

    }

    public static void main(String[] args) {
        Launcher.launch(Main.class, args);
    }
}

Isso aqui tá muito parecido com Swing ainda na minha opinião

Tinha que ter uma DSL com as novas features do Java como Maps literais e Closures, algo parecido com o JavaFX Script, mas em Java

Sim, é o que vamos fazer mantendo a linguagem Visage:

code.google.com/p/visage/

E é por isso que houve bastante foco na apresentação do Jonathans e o Stephen no JavaOne: Eles focaram o desenvolvimento com JavaFX em outras linguagens na JVM, ficou legal a apresentação e a implementação em Scala melhor ainda:

http://javafx.steveonjava.com/javafx-your-way-building-javafx-applications-with-alternative-languages/

Outra coisa, esse snnipet acho que não mostrou tudo, mas o JavaFX tem muitas partes interessantes que não temos no Swing. O foco é manter simples, então metódos do tipo addAll(Node ....) são muito úteis neste contexto.

Jesuino_Master

chun:
Ao meu ver , o JavaFX continua um vaporware…

Vai demandar mais que 10x o investimento atual para tornar-se mercadologicamente real.

Sorte do Flash e do SilverLight…

Veja o caso do SilverLight… milhares de dolares investidos para um uso praticamente ínfimo… cada vez mais o HTML5 está trucidando “flashes like”…

Sei que não faz tudo que o flash faz , mas enfim…

JavaFX na minha opiniao nasceu morto.

Se você diz dominar o mercado RIA infelizmente o JavaFX não conseguiu. Com o novo FX a Oracle pode conseguir muita audiência, o pessoal está se esforçando para fechar todos os buracos deixados nas versões posterior a 2…

O problema do JavaFX mesmo foram as muitas promessas não cumpridas (mobile por exemplo)… Se nascesse humilde, teria conquistado muita coisa.

Tenkara_Kiddo

jeanlopes:
Acho que o JavaFX 2.0 tem tudo para ser o novo Swing.

As aplicações com certeza passarão a ter uma outra “cara”.

Fico muito triste de o JavaFXScript ter acabado, pois sua simplicidade e naturalidade me encantam cada dia mais. Mas vem ai o Visage (do Stephen Chin) que deve cobrir esta lacuna.

Como já foi dito o JavaFX 2.0 ficou muito com cada de JAVA, muito quadradinho. O que se fazia com uma unica declaração de 3 linhas agora precisa de inumeros métodos, linhas intermináveis e as Interfaces.

O BIND com ON REPLACE e WITH INVERSE do FXScript é impagável e a maior sacada que poderia colocar no Java.

Hoje desenvolvemos as interfaces em JavaFX 1.3 e as lógicas e o trabalho sujo em Java. uma dobradinha que tem dado certo.

ótima noticia, estava cansado de ter que aplicar look and feel, e gostaria de um visual mais RIA, alem de nao precisar integrar o Java com ferramentas intermediarias para usar o Flex,
acho que seria bacana substituir o swing pelo FX, desde que não consuma Milhoes de MB em memoria é claro.

outra coisa que ficaria legal seria o suporte mais “web” para celulares, o layout ficaria muito mais simples e bonito de se fazer

abs a todos.

Jesuino_Master

É muito importante ressaltar que:

  • O JavaFX não é uma nova interface bonitinha. Ele contém um arquitetura chamada Node Scenegraph. Isso é muito interessante:
    http://www.smarks.org/svjugfx20100414/flood.html
    http://download.oracle.com/docs/cd/E17802_01/javafx/javafx/1/docs/api/javafx.scene/javafx.scene.Node.html

  • JavaFX não é Swing, não está acima do Swing e não usa nada do Swing…

  • A API nasce no contexto em que a WEB domina tudo, então, o foco na integração com a WEB é bastante visível nessa API;

  • Prism…

  • Muitas das coisas aqui estão cumpridas na nova API: http://javafx.com/roadmap/

  • A API prevê coisas que antes só eram possíveis com bibliotecas de terceiros ou com muito código. Cosias como estilo com CSS (sim, vocÊ pode setar toda a APP usando o CSS que é padrão da web…), animação (antes possível com bibliotecas como o Trident, descontinuado), efeitos built in e muitas outras coisas…

  • O que a API do javaFX não cobrir, estamos trabalhando para fazer :wink:

  • Os projetos JFXtras, Visage e RedFX estão sendo trabalhados; O criado dor RedFX adicionou suporte a annotations e disse que a API está alinhada ao JavaFX 2.0. mas eu não coloquei a mão na nova versão do projeto ainda (eu cheguei a contribuir na outra vez com um parser XML)

Tenkara_Kiddo

@Jesuino Master
mais você acredita, que no futuro o FX domine toda a area desktop e web do Java ?

M

Tenkara Kiddo:
@Jesuino Master
mais você acredita, que no futuro o FX domine toda a area desktop e web do Java ?

Do java sim, o Swing está estagnado e é muito pesado. Que ele se torne difundido além do mundo Java, acho difícil, mas vai crescer mais do que é hoje, com certeza.

Eu gostava do JavaFX Script, muito simples de declarar, parecido com a forma que o Delphi criava os arquivos de componentes visuais nos .dfm. É uma tecnologia que foi feita pensando em RAD, ao contrário do Swing, que quando surge um editor RAD precisa de ficar aquele código poluído e bagunçado.

Tenkara_Kiddo

marcosalex:
Tenkara Kiddo:
@Jesuino Master
mais você acredita, que no futuro o FX domine toda a area desktop e web do Java ?

Do java sim, o Swing está estagnado e é muito pesado. Que ele se torne difundido além do mundo Java, acho difícil, mas vai crescer mais do que é hoje, com certeza.

Eu gostava do JavaFX Script, muito simples de declarar, parecido com a forma que o Delphi criava os arquivos de componentes visuais nos .dfm. É uma tecnologia que foi feita pensando em RAD, ao contrário do Swing, que quando surge um editor RAD precisa de ficar aquele código poluído e bagunçado.

entendi, preferia que fosse assim igual você falou
eu nunca fiz um teste com o FX Marcos, mais ele não é como o o Flex ? (no quesito de consumo excessivo de memoria ? )

a unica coisa que eu achava ruim do Delphi, igual o que você comentou, é que as ferramentas RAD sujam o código, peço desculpas aos intusiastas do Net Beans, mais acho que uma ferramenta RAD acabaria com a organização de código…

jeanlopes

Tenkara Kiddo:
jeanlopes:
Acho que o JavaFX 2.0 tem tudo para ser o novo Swing.

As aplicações com certeza passarão a ter uma outra “cara”.

Fico muito triste de o JavaFXScript ter acabado, pois sua simplicidade e naturalidade me encantam cada dia mais. Mas vem ai o Visage (do Stephen Chin) que deve cobrir esta lacuna.

Como já foi dito o JavaFX 2.0 ficou muito com cada de JAVA, muito quadradinho. O que se fazia com uma unica declaração de 3 linhas agora precisa de inumeros métodos, linhas intermináveis e as Interfaces.

O BIND com ON REPLACE e WITH INVERSE do FXScript é impagável e a maior sacada que poderia colocar no Java.

Hoje desenvolvemos as interfaces em JavaFX 1.3 e as lógicas e o trabalho sujo em Java. uma dobradinha que tem dado certo.

ótima noticia, estava cansado de ter que aplicar look and feel, e gostaria de um visual mais RIA, alem de nao precisar integrar o Java com ferramentas intermediarias para usar o Flex,
acho que seria bacana substituir o swing pelo FX, desde que não consuma Milhoes de MB em memoria é claro.

outra coisa que ficaria legal seria o suporte mais “web” para celulares, o layout ficaria muito mais simples e bonito de se fazer

abs a todos.

Tenkara,

Aqui uns exemplos de tela de um sistema de CRM que estamos desenvolvendo que usa RMI + Observables + JPA e JavaFX.

Todas as telas, cores, efeitos, fontes são controladas por CSS e todos os textos de Labels são configuráveis e internacionalizados por arquivos de propriedades e o esquema ## do JavaFX.

Como produtor de interface o JavaFX deve se tornar a opção mais interessante.

Tenkara_Kiddo

jeanlopes:
Tenkara Kiddo:
jeanlopes:
Acho que o JavaFX 2.0 tem tudo para ser o novo Swing.

As aplicações com certeza passarão a ter uma outra “cara”.

Fico muito triste de o JavaFXScript ter acabado, pois sua simplicidade e naturalidade me encantam cada dia mais. Mas vem ai o Visage (do Stephen Chin) que deve cobrir esta lacuna.

Como já foi dito o JavaFX 2.0 ficou muito com cada de JAVA, muito quadradinho. O que se fazia com uma unica declaração de 3 linhas agora precisa de inumeros métodos, linhas intermináveis e as Interfaces.

O BIND com ON REPLACE e WITH INVERSE do FXScript é impagável e a maior sacada que poderia colocar no Java.

Hoje desenvolvemos as interfaces em JavaFX 1.3 e as lógicas e o trabalho sujo em Java. uma dobradinha que tem dado certo.

ótima noticia, estava cansado de ter que aplicar look and feel, e gostaria de um visual mais RIA, alem de nao precisar integrar o Java com ferramentas intermediarias para usar o Flex,
acho que seria bacana substituir o swing pelo FX, desde que não consuma Milhoes de MB em memoria é claro.

outra coisa que ficaria legal seria o suporte mais “web” para celulares, o layout ficaria muito mais simples e bonito de se fazer

abs a todos.

Tenkara,

Aqui uns exemplos de tela de um sistema de CRM que estamos desenvolvendo que usa RMI + Observables + JPA e JavaFX.

Todas as telas, cores, efeitos, fontes são controladas por CSS e todos os textos de Labels são configuráveis e internacionalizados por arquivos de propriedades e o esquema ## do JavaFX.

Como produtor de interface o JavaFX deve se tornar a opção mais interessante.

com certeza achei interessantissimo,
layout muito bonito alem de ser internacionalizavel

"Como produtor de interface o JavaFX deve se tornar a opção mais interessante. "

eu gostaria de perguntar Jean, em relação ao layout bonito, você acabou perdendo performance (em relação a custo de memoria a maquina) ??
e o trabalho é muito mais "arduo " do que em relação ao Swing
??

jeanlopes

Tenkara,

Com relação a custo Memória/máquina seria mentira dizer que não há. Porém em maquinas com placas de vídeo de bom performance se tira de letra a velocidade das telas. Mas no geral acredito que vale a pena.

Com relação a comparação ao swing o que posso dizer é que sou um apaixonado pelo JavaFXScript e para mim ele é infinitamente mais simples criar uma interface com ele do que com o Swing. Só o fato de não ter que trabalhar com as diversas Interfaces (escrever o método direto dentro do evento do componente) já vale.

Para ter uma ideia as telas da aplicação são todas feitas sobre gráficos SVG, seus preenchimentos (cores degradês e transparencias) são definidas no CSS.

O mais legal é manipular os Collections do JPA como Sequences do JavaFX.

Ainda a primeira carga tem um tempo ruim (baixar as bibliotecas) mas depois fica interessante (no nosso caso fazemos as inicialização de telas em background).

Conhecendo os componentes visuais bem criar telas não é uma tarefa muito complicada, mesmo com a falta de um bom editor tipo o Matise. Ainda é muito no code and view, mas com um pouco de prática fica bem facil, mais do que se fizesse o mesmo com o Swing.

Tenkara_Kiddo

obrigado Jean,
fiquei interessadíssimo com pelo FX, so pelo fato de ser mais bonito, mais maleavel, e ter uma melhor manutenção do que o Swing
sobre o fato do custo de memoria, qualquer computador hoje em dia está rodando com um desempenho gráfico consideravel,

e eu posso deixar o layout para uma equipe que “manja” bastante de layout isso é possivel por causa dos CSS’s
e as regras de negocio ficam para quem entende de regras de negocio, separando a necessidade do programador aprender layout so para ficar bonito como no Swing

cara esclareceu bastante minhas duvidas, valeu .

jeanlopes

Tenkara Kiddo:
obrigado Jean,
fiquei interessadíssimo com pelo FX, so pelo fato de ser mais bonito, mais maleavel, e ter uma melhor manutenção do que o Swing
sobre o fato do custo de memoria, qualquer computador hoje em dia está rodando com um desempenho gráfico consideravel,

e eu posso deixar o layout para uma equipe que “manja” bastante de layout isso é possivel por causa dos CSS’s
e as regras de negocio ficam para quem entende de regras de negocio, separando a necessidade do programador aprender layout so para ficar bonito como no Swing

cara esclareceu bastante minhas duvidas, valeu .

Para isto, com javaFXScript (1.3) há uma ferramenta que converte graficos vetorias para JavaFXScript, assim ases do abobe podem criar as interfaces (inclusive se não me engano há um plugin para os objetos tipo botões e edits) que depois são convertidos em codigo FX.

Para manutenção no JavaFX Script tem que ter um disciplina um pouco diferente do que nos códigos “Java Like”. Como tu pode na definição de um objeto colocar código e disparos por evento, bem como o Bind de valores e CSS alterando o comportamento, saber onde mexer e documentar isto fica um pouco complexo.

Jesuino_Master

Tenkara Kiddo:
@Jesuino Master
mais você acredita, que no futuro o FX domine toda a area desktop e web do Java ?

Eu acredito que a oracle vai ganhar um pouco do que perdeu para o Flex e o Desktop é certeza a longo prazo ser substituído poor JavaFX no lugar de Swing. Talvez no Java 9, pois no 8 o JavaFX já vai estar na API padrão.

Eu estou com EA do novo JavaFX, e só tenho a dizer coisas boas.

O que achei de bug enviei para o JIRA deles e na nova EA muita coisa estava ajustada.
O time do JavaFX está recebendo o Feedback de todos e ajustando a API conforme as necessidades que estão aparecendo. Veja nesse post do Adam Bien, as pessoas reclamaram da complexidade da tableView. Na nova EA já tinha mudado a forma de fazer uma tableview e ficou bem melhor:

http://www.adam-bien.com/roller/abien/entry/hello_javafx_2_a_tableview

Tem tudo pra dar certo nessa vez. Eu acompanho o JavaFX há muito tempo e nunca estive tão otimista. E nem é só eu, muitos críticos estão falando bem. Só procurar pelas review do JavaFX 2 pela net pra ver.

Sendo mais direto, dominar o mercado RIA não, mas vai ser bastante usado se continuar bom como está.

Tenkara_Kiddo

@Jean
quase um Silverlight like ?

Jesuino_Master

Sobre o peso do novo JavaFX. Vou confessar que não é como uma aplicação levinha nativa do Windows, mas está muito rápido no startup, mas muito rápido mesmo!

O problema é que os gráficos e animações, embora muito “cabulosas”, só rodam em máquinas com aceleração de hardware. Então, no meu PC com minha NVDia e Win, o funciona perfeitamente, mas no meu note, com Ubuntu, o negócio engasga nas aplicações animações, mas aplicações só com GUI, nada a reclamar :slight_smile:

Tenkara_Kiddo

Jesuino Master:
Sobre o peso do novo JavaFX. Vou confessar que não é como uma aplicação levinha nativa do Windows, mas está muito rápido no startup, mas muito rápido mesmo!

O problema é que os gráficos e animações, embora muito “cabulosas”, só rodam em máquinas com aceleração de hardware. Então, no meu PC com minha NVDia e Win, o funciona perfeitamente, mas no meu note, com Ubuntu, o negócio engasga nas aplicações animações, mas aplicações só com GUI, nada a reclamar :slight_smile:

infelizmente esse é o problema serio de todos os RIA like’s
consumo de memoria em excesso,
o lado bom dessa moeda é que o StartUp está muito mais rapido

torço muitooooo para que a Oracle vingue o JavaFx e que ele se torne melhor a cada vez mais,

Tenkara_Kiddo

Jesuino Master:
Tenkara Kiddo:
@Jesuino Master
mais você acredita, que no futuro o FX domine toda a area desktop e web do Java ?

Eu acredito que a oracle vai ganhar um pouco do que perdeu para o Flex e o Desktop é certeza a longo prazo ser substituído poor JavaFX no lugar de Swing. Talvez no Java 9, pois no 8 o JavaFX já vai estar na API padrão.

Eu estou com EA do novo JavaFX, e só tenho a dizer coisas boas.

O que achei de bug enviei para o JIRA deles e na nova EA muita coisa estava ajustada.
O time do JavaFX está recebendo o Feedback de todos e ajustando a API conforme as necessidades que estão aparecendo. Veja nesse post do Adam Bien, as pessoas reclamaram da complexidade da tableView. Na nova EA já tinha mudado a forma de fazer uma tableview e ficou bem melhor:

http://www.adam-bien.com/roller/abien/entry/hello_javafx_2_a_tableview

Tem tudo pra dar certo nessa vez. Eu acompanho o JavaFX há muito tempo e nunca estive tão otimista. E nem é só eu, muitos críticos estão falando bem. Só procurar pelas review do JavaFX 2 pela net pra ver.

Sendo mais direto, dominar o mercado RIA não, mas vai ser bastante usado se continuar bom como está.

eu estou vendo o post citado, e estou achando bem simples programar com o Fx, alem da simplicidade no TableVIew.

ViniGodoy

Eu sou um grande fã de Swing. Se você programar corretamente nele, ele não é tão pesado.

Mas realmente ele está estagnado e creio que o Java FX tem tudo para substitui-lo. Até porque, essa é uma tendência também em outras plataformas, como o Air e o Silverlight, que tem ganhado força.

Além disso, as novas aplicações são bem mais desenhadas, sem tanto a cara de componentes padronizados. Some isso ao fato desse tipo de plataforma ser facilmente portada para dispositivos móveis, e você estará com a faca e o queijo na mão para destruir o Swing.

ViniGodoy

Acredita-se que num futuro próximo nenhuma máquina virá sem aceleração de vídeo. É uma tendência já atual. Os SOs já se adaptaram a essa realidade, e alguns, até recomendam. Até mesmo mobile devices já estão incorporando placas gráficas.

Mas esse problema ocorre até em java 2D nativo. Especialmente se os drivers no linux não estiverem instalados corretamente (o que é muito comum, e força a rederização por software). Em máquinas windows, mesmo onboard, o Particles chega a pegar mais de 60 FPS. Numa máquina sem driver de vídeo adequada, pode rodar a 10, 12, no máximo.

Filipe_Chagas

Muito boa notícia.
A descontinuação da JavaFX Script não me causou nenhuma preocupação, já que temos excelentes opções de linguagens de script para usar sobre a JVM (aka Groovy, JRuby…)
Nada impede de utilizar groovy para a montagem do leiaute usando o JavaFx. Aliás, isso seria bem interessante.

JavaFx sem dúvida caminha a um bom rítimo para substituir o swing, pois resolve vários problemas do swing, além de trazer novos paradigmas bem interessantes.

Luiz_Seadorf

Estou numa situacao interessante

Estou fazendo um sistema para gerenciamento de joalherias e no meu cronograma acho que mais 2 meses ou pouco mais terminaria as classes de negocio e comecaria a interface grafica, que em principio seria em Swing + JGoodies. Agora sabendo que a JavaFx 2.0 esta’ saindo do forno e o fator “tempo” nao sendo problema , provavelmente vou ter que dar aquela “enrolada” para ver que rumo tomarei. Seria uma boa oportunidade para comecar com o JavaFx, so’ temo que venha com muitos bugs e documentacao fraca.
Sera’ gratuito para baixar, como o JDK do Java, ou $$$ ??

jeanlopes

Um post intererssante sobre como vai funcionar o bind no JavaFX2.0.

Muito trabalho para algo que simplesmente era var a = bind b [on replace{println(a);}]

Cada vez mais torço pelo Visage.

verediane

jeanlopes:
Tenkara Kiddo:
obrigado Jean,
fiquei interessadíssimo com pelo FX, so pelo fato de ser mais bonito, mais maleavel, e ter uma melhor manutenção do que o Swing
sobre o fato do custo de memoria, qualquer computador hoje em dia está rodando com um desempenho gráfico consideravel,

e eu posso deixar o layout para uma equipe que “manja” bastante de layout isso é possivel por causa dos CSS’s
e as regras de negocio ficam para quem entende de regras de negocio, separando a necessidade do programador aprender layout so para ficar bonito como no Swing

cara esclareceu bastante minhas duvidas, valeu .

Para isto, com javaFXScript (1.3) há uma ferramenta que converte graficos vetorias para JavaFXScript, assim ases do abobe podem criar as interfaces (inclusive se não me engano há um plugin para os objetos tipo botões e edits) que depois são convertidos em codigo FX.

Para manutenção no JavaFX Script tem que ter um disciplina um pouco diferente do que nos códigos “Java Like”. Como tu pode na definição de um objeto colocar código e disparos por evento, bem como o Bind de valores e CSS alterando o comportamento, saber onde mexer e documentar isto fica um pouco complexo.

“ferramenta que converte graficos vetorias para JavaFXScript” Qual seria está ferramenta?

jeanlopes

verediane:
jeanlopes:
Tenkara Kiddo:
obrigado Jean,
fiquei interessadíssimo com pelo FX, so pelo fato de ser mais bonito, mais maleavel, e ter uma melhor manutenção do que o Swing
sobre o fato do custo de memoria, qualquer computador hoje em dia está rodando com um desempenho gráfico consideravel,

e eu posso deixar o layout para uma equipe que “manja” bastante de layout isso é possivel por causa dos CSS’s
e as regras de negocio ficam para quem entende de regras de negocio, separando a necessidade do programador aprender layout so para ficar bonito como no Swing

cara esclareceu bastante minhas duvidas, valeu .

Para isto, com javaFXScript (1.3) há uma ferramenta que converte graficos vetorias para JavaFXScript, assim ases do abobe podem criar as interfaces (inclusive se não me engano há um plugin para os objetos tipo botões e edits) que depois são convertidos em codigo FX.

Para manutenção no JavaFX Script tem que ter um disciplina um pouco diferente do que nos códigos “Java Like”. Como tu pode na definição de um objeto colocar código e disparos por evento, bem como o Bind de valores e CSS alterando o comportamento, saber onde mexer e documentar isto fica um pouco complexo.

“ferramenta que converte graficos vetorias para JavaFXScript” Qual seria está ferramenta?

Veridiane,

é o JavaFX Production Suite (http://download.oracle.com/javafx/1.3/reference/releasenotes/production-suite-release-notes-1-3.html).

Dá uma olhada que ele tem como objetivo deicar o layout e apresentação por conta dos “artistas” e o trabalho sujo e não reconhecido para os programadores :o).

Grinvon

Uma nota: Para quem fala muito mal do Swing é porque realmente não o conhece!

Luiz_Seadorf

Eu tb gosto de Swing e programo quase na unha, com o TextPad, e’ trabalhoso mas muito flexivel e pelo que vi nos exemplos de como sera’ a codificacao em JavaFx 2.0, nao e’ muito mais facil.
O Swing demanda um tempo para dominar a API e depois aprender a personalizar, mas ai’ vc comeca a gostar e ver a beleza do MVC.
Infelizmente e’ uma interface um pouco lenta e trabalhosa e a codificacao da resposta a eventos parece um pouco “gambiarra”.

T

não vejo o JavaFX com o código limpo como o do Flex/Air…
o JavaFX script era algo muito melhor de se programar do que estou vendo nessa versão 2.0. Com a noticia da morte da linguagem declarativa do JavaFX deixei de estudar a mesma e continuei programando em swing, esperando um retorno da nova versão. Sinceramente esperava algo menos poluido, ta parecendo um swing melhorado, nada que concorra diretamente com Adobe e Microsoft em RIA…

Jesuino_Master

Two_:
não vejo o JavaFX com o código limpo como o do Flex/Air…
o JavaFX script era algo muito melhor de se programar do que estou vendo nessa versão 2.0. Com a noticia da morte da linguagem declarativa do JavaFX deixei de estudar a mesma e continuei programando em swing, esperando um retorno da nova versão. Sinceramente esperava algo menos poluido, ta parecendo um swing melhorado, nada que concorra diretamente com Adobe e Microsoft em RIA…

Já foi dito que é possível usar Groovy, Scala, clojure, JRuby e que vamos ter o Visage, ainda que não imediatamente, mas vamos ter…

E Java é verboso, infelizmente… Mas a API tem muitas melhorias no quesito código também, existem métodos adequados a programação GUI.

Jesuino_Master

Luiz Seadorf:
Estou numa situacao interessante

Estou fazendo um sistema para gerenciamento de joalherias e no meu cronograma acho que mais 2 meses ou pouco mais terminaria as classes de negocio e comecaria a interface grafica, que em principio seria em Swing + JGoodies. Agora sabendo que a JavaFx 2.0 esta’ saindo do forno e o fator “tempo” nao sendo problema , provavelmente vou ter que dar aquela “enrolada” para ver que rumo tomarei. Seria uma boa oportunidade para comecar com o JavaFx, so’ temo que venha com muitos bugs e documentacao fraca.
Sera’ gratuito para baixar, como o JDK do Java, ou $$$ ??

A documentação está muito boa e você pode ver pelos links que o pessoal está postando que há muita vontade dos mesmos na realização de artigos e tals. Existe uma aplicação que vem com o javaFX chamada “Ensemble” e mostra todos os componentes do JavaFX e o código que foi usado para usar ele, também mostra a API de animação entre outros.

Acredito que vai ser gratuito, não faz sentido eles cobrarem. O que eu tenho certeza é que a API será código fechado, com exceção da parte de controles de interface, assim poderemos criar nosso controles.

M

Bom saber que o JavaFX continua andando.

Valeu pela notícia Jesuíno Master!

Luiz_Seadorf

Jesuino
Obrigado pela informacao

Aproveitando, vou tentar saber mais um pouco para adaptar o que eu ja’ fiz a JavaFx, ja’ que nao conheco nada e nao sei o quanto ela e’ “fechada”, se comparada ao Swing.
Eu estava pretendendo usar o pattern Presentation Model , e assim ter a Classe que monta a GUI bem separada. Na minha classe Presentation Model faco o binding com uma classe DTO, que seria um item de um ArrayList de DTO’s. A Validacao dos dados editados e’ feita numa classe de negocio (BO) especifica que e’ recebida no construtor da Presentation Model. Essa BO observa mudancas na DTO, valida os dados editados e poe o resultado num ValidationResultModel, que e’ observado pela GUI para exibir os erros. E’ assim, resumidamente, que funcionaria a API JGoodies com Swing.

Bom, sei que a JavaFx tem binding, mas nao sei se funciona diferente da JGoodies, mas acredito que seja bem semelhante. Quanto a validacao, isso me preocupa. Caso a JavaFx nao possua uma API para isso, seria possivel usar a API do JGoodies ? Respondendo, um painel de exibicao de erros, invisivel e sobreposto, e que examina os componentes Swing, como faz a JGoodies, acho inviavel porque ele e’ totalmente dependente do Swing. O que eu preciso seria , no minimo, que fosse possivel a GUI JavaFx observar mudancas num ValidationResultModel presente na classe BO, para poder exibir erros, na forma de um label ou abrir uma janela para exibir o erro.

Qual a sua opiniao ?

M

Luiz Seadorf:
Eu tb gosto de Swing e programo quase na unha, com o TextPad, e’ trabalhoso mas muito flexivel e pelo que vi nos exemplos de como sera’ a codificacao em JavaFx 2.0, nao e’ muito mais facil.
O Swing demanda um tempo para dominar a API e depois aprender a personalizar, mas ai’ vc comeca a gostar e ver a beleza do MVC.
Infelizmente e’ uma interface um pouco lenta e trabalhosa e a codificacao da resposta a eventos parece um pouco “gambiarra”.

Bom, na sua defesa, indiretamente você resumiu exatamente o que o pessoal não gosta no Swing.

O JavaFX script pra mim era uma ótima linguagem, projetada pra ser RAD. A versão nova eu ainda não sei como vai ser, mas mudaram de acordo com as reclamações dos desenvolvedores.

J

Para mim pouco importa o modelo da linguagem. O que eu quero ver é uma ferramenta robusta de alto desempenho.
Se for mais uma api para gerar desenhos bonitinhos com péssimo desempenho é preferível que fique na cova de vez.

Jesuino_Master

O JavaFX também tem outras coisas interessantes:

  • ObservableList
  • parte gráfico do JFX é melhorada no sentido de performance;
  • JavaFX 2 já nascerá com projetos de apoio ao que a API não tem. RedFX vai facilitar o desenvolvimento de aplicações Enterprise (como se fosse o BlazeDS para o JavaFX), JFXtras é uma série de componentes extra API (o pessoal está trabalhando nele, só entrar na lista pra ver), o Visage irá agradar ao pessoal que prefere uma DSL invés do Java para criar interfaces e, finalmente, já estão falando de uma API de Builder para o JFX (panel.addAll(btn, lbl, txt).setSize(300,300).setTranslateX(10).setTranslateY(10):wink:

Sobre a dúvida do Luiz:

Exatamente, o binding dele é igual ao do JGoodies, vi o pessoal falando no Twitter isso (eu não conheço JGoodies por isso não afirmei isso antes… De qualquer forma vou me informar mais sobre essa semelhança)

J

Jesuino Master:
É muito importante ressaltar que:

  • Prism…
  • A API prevê coisas que antes só eram possíveis com bibliotecas de terceiros ou com muito código. Cosias como estilo com CSS (sim, vocÊ pode setar toda a APP usando o CSS que é padrão da web…), animação (antes possível com bibliotecas como o Trident, descontinuado), efeitos built in e muitas outras coisas…

1º Prism? Do que você está falando?

2º O Trident foi descontinuado? Os últimos posts no blog do fornecedor desta biblioteca falam apenas sobre o lançamento de novas versões. Vide http://www.pushing-pixels.org/category/trident. Não há nada que diga que o Trident foi descontinuado. Ou será que eu estou enganado?

Jesuino_Master

jclauber:
Jesuino Master:
É muito importante ressaltar que:

  • Prism…
  • A API prevê coisas que antes só eram possíveis com bibliotecas de terceiros ou com muito código. Cosias como estilo com CSS (sim, vocÊ pode setar toda a APP usando o CSS que é padrão da web…), animação (antes possível com bibliotecas como o Trident, descontinuado), efeitos built in e muitas outras coisas…

1º Prism? Do que você está falando?

2º O Trident foi descontinuado? Os últimos posts no blog do fornecedor desta biblioteca falam apenas sobre o lançamento de novas versões. Vide http://www.pushing-pixels.org/category/trident. Não há nada que diga que o Trident foi descontinuado. Ou será que eu estou enganado?

1º Você pode falar que o Prism é o Java2D do JavaFX (comparação brusca). Olhe esse post da Amy Fowler (uma das criadoras do Swing e agora no time de layout do JavaFX):

Uma citação:

Daí perguntaram sobre o prisma nos comentários e ela esclareceu:

(essa plataforma portátil de gráficos que é a esperança de fazer o JavaFX Mobile, JavaFX TV, mas que não estão sendo trabalhados hoje)

2 º Acho que o Kirill voltou atrás, ele apagou a mensagem dele:

http://old.nabble.com/Continuing-development-of-substance,-flamingo-and-others-td29568644.html

Ainda bem que ele não tinha anunciado oficialmente. Isso era meio oculto pelo que estou vendo :twisted:

Espero que ele tenha voltado mesmo. Embora me achem Swing Hater por ae, eu sou muito fã dessa API e já até implementei pequenos sistemas com ela…

M

juliocbq:
Para mim pouco importa o modelo da linguagem. O que eu quero ver é uma ferramenta robusta de alto desempenho.
Se for mais uma api para gerar desenhos bonitinhos com péssimo desempenho é preferível que fique na cova de vez.

Não testei ainda, mas eles estão preocupados com desempenho, mesmo na época da Sun era a principal demanda.

Sobre ferramenta de desempenho, o JavaFX era projetado pensando em pensamentas automáticas e em RAD, não sei se com essa mudança pro JavaFX 2.0 esse foco continuou, espero que sim.

J

Vai ver que ele estava sem tempo para se dedicar aos seus projetos open source, já que ele trabalha na equipe de desenvolvimento do Android. Espero que ele continue desenvolvendo os seus projetos, especialmente o Substance e o Flamingo, que, de certa forma, “corrigem”, por assim dizer, algumas deficiencias do Swing, tais como quantidade limitada de componentes e look-and-feels feios e atrasados. Ainda não sei usar o Trident, mas já vi alguns demos e achei muito interessante. Espero poder usá-lo algum dia.

Jesuino_Master

O trident ele estava portando para JavaScript, olha:

A versão JS estava massa!

Luiz_Seadorf

Jesuino

Achei uma comparacao nesse blog do Carl Dea, citando similaridades da api binding e validation do JGoodies com as da JavaFX.
Acho que a transiçao Swing/JGoodies para JavaFx pode ser bem tranquila.

Odlaveneda
chun:
victorcosta:
package com.abien.hello;

import javafx.application.Application;
import javafx.application.Launcher;
import javafx.collections.Sequence;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;

public class Main extends Application{


    @Override public void start() {
        Stage stage = new Stage();
        stage.setTitle("Hello Java FX");
        stage.setResizable(false);

        Group root = new Group();
        Scene scene = new Scene(root,80,20);
        stage.setScene(scene);

        Sequence children = root.getChildren();
        children.add(new Label("Hello Java FX 2"));
        stage.setVisible(true);

    }

    public static void main(String[] args) {
        Launcher.launch(Main.class, args);
    }
}

Isso aqui tá muito parecido com Swing ainda na minha opinião

Tinha que ter uma DSL com as novas features do Java como Maps literais e Closures, algo parecido com o JavaFX Script, mas em Java

Closures ? Vai sonhando...

Ai gente sou novo no javafx e ate agora nao consegui executar nada como o swing sem usar o swing tipo quero uma aplicaçao totalmente java fx com forms mdi e modal alguem tem ideia de como faz isso penssei que esse codigo ai fizesse isso mas no netbeans 6.9 com o javafx 2.0 nem compila

Criado 24 de fevereiro de 2011
Ultima resposta 9 de jul. de 2011
Respostas 51
Participantes 19