Diferenças de Swing e JavaFX

Olá, meu nome é Mateus e este é meu primeiro tópico aqui.
Eu gostaria de saber as principais diferenças entre o famoso e novo FX para o Swing, pois agora quero saber qual deles devo usar em quais tipos de programas etc…

Olá @Mateus_Berger tudo bem?
Então cara, pra começar a minha resposta, sugiro que estude Swing para conhecer, mas seu foco mesmo seja JavaFX. A Oracle já anunciou que vai “abandonar” o Swing(não vai remover, mas não vai mais atualizar), então não faz muito sentido usá-los agora. O JavaFX será “a nova era” da programação. Na verdade, não “será”, porque já está aí há um bom tempo, apenas sendo aperfeiçoado e ganhando mais espaço no meio dos desenvolvedores. Eu, particularmente, achei mais facil que usar Swing. Mas já me acostumei a usar Swing… Não que eu não vá migrar, eu apenas estou estudando JavaFX ainda.

Vamos ao que realmente interessa.
Sobre o Swing:
Swing é um Widget Toolkiit para usar com Java. Ele é compatível com AWT(Abstract Window Toolkit), mas trabalha de forma diferente. Ela tenta renderizar por conta própria seus componentes, ao invés de deixar isso para o sistema operacional, como a maioria das outras API de interface gráfica fazem.
Esse conceito, eu tirei da Wikipedia mesmo, o link está aqui
Resumindo… Swing é uma API de interface gráfica que desenha/renderiza os seus próprios componentes, tirando esse trabalho do Sistema Operacional.

Sobre JavaFX:
Ele traz mais facilidade à compreensão do código(eu acho). Leia um pouco mais aqui e tem umas coisas na Wikipedia também
E, com certeza, está mudando(para melhor) os sistemas de quem está desenvolvendo com JavaFX usando suas ferramentas ao máximo e da maneira correta.

Como eu disse… Ainda não sei muito sobre JavaFX. Fiquei tão centrado em Swing, que não pesquisei além rs… Agora que estou dando meus primeiros passos em JavaFX, criando uns Frames, uns Buttons… Nada muito complexo. Mas estou gostando bastante.

Então…
Dá uma olhada em Swing. Conheça… Mas não se foque apenas nisso. Como eu disse, Oracle já não vai mais atualizar esse pacote. A onda agora é JavaFX rs

1 curtida

Muito obrigado, sua resposta ajudou muito, só presciso saber um pouco mais sobre o JavaFX agora :smiley:.

De nada cara.
Desculpa não poder dar maiores informações. Também sou iniciante no JavaFX

Olá, trabalho com o Java a ± 3 anos, nesse tempo trabalhei muito com Swing e hj me considero bom nele, a mais ou menos um ano estou trabalhando com o FX e posso te dizer que ele é bem melhor, sobretudo na questão de design e produtividade.

A diferença básica entre os dois está no motor de renderização. O FX utiliza o Prism e o Swing Java2D. Mas quanto à melhorias o java FX utiliza os novos conceitos introduzidos no Java8 como Lambda e Streams, além disso tem o Binding que permite que se faça a ligação dos componentes da tela com seu Bean ou mesmo com outros componentes.

Prós e Contras do Swing

  • Pró: O swing, por ter vindo primeiro tem vários componentes e bibliotecas mais sólidas e se adequa bem a sistemas antigos.

  • Contra: O swing não irá mais receber atualizações, e já não recebe a bastante tempo, e por isso não irá acompanhar a evolução dos sistemas mais atuais e do mercado.

Prós e contras do JavaFX

  • Prós: Além dos já citados, ele possui uma boa divisão que facilita o MVC, o design fica no FXML. Binding,Estilos com CSS, Animações, Efeitos …

  • Contras: Pouca documentação e exemplos em relação ao swing, menos componentes em relação ao swing, desempenho inferior em sistemas mais antigos (relativo).

Veja esses links e saiba por onde começar:
http://docs.oracle.com/javase/8/javase-clienttechnologies.htm

1 curtida

Swing é bem velho huahuhua. Eu comecei aprendendo swing. Até achei o JavaFX mais difícil, mas tudo é questão de se acostumar :slight_smile:

O swimg é bom, mas quando se quer personalizar a aplicação fica um pouco difícil enquanto no FX é só criar um CSS e usar a criatividade :slight_smile:.

1 curtida

obrigado Andrauss e Luiz, ajudaram muito.
:grinning: