O que é o JavaFX e como ele é diferente do Swing e do AWT?

Se você é iniciante em Java e está aprendendo através de cursos on-line na Udemy ou em livros, deve ter ouvido falar sobre o Swing e o AWT. Não há dúvida de que essas são ferramentas incríveis e muitos desenvolvedores e empresas de software estão usando para criar aplicativos. Estou aqui para dizer para não aprender essas tecnologias.


Swing, AWT, JavaFX fazem parte do JDK e são usados ​​para criar a Interface Gráfica do Usuário (GUI), com o JavaFX sendo um dos participantes mais recentes desta lista.

O Abstract Window Toolkit, ou mais conhecido como AWT, é o mais antigo desses três. É mais como uma tecnologia de criação de GUI do tipo “faça você mesmo”, que não possui pacotes / bibliotecas embutidos para criar muitos recursos importantes de uma interface, como criar uma tabela para a qual você precisaria de vários rótulos ou itens de campo, além de painel de rolagem codificado manualmente para cada linha e coluna de uma tabela. Swing enquanto faz a coisa exata para você. É leve (embora haja alguns componentes que podem ser denominados pesados) e atropela o próprio AWT. Como no exemplo acima, pode-se usar o JTable, que é uma biblioteca no Swing que faz exatamente o que eu havia mencionado de uma maneira muito melhor e sofisticada.

Existem centenas de aplicativos e APIs de código aberto realmente maravilhosos, criados usando o Swing, disponíveis no GitHub. Ele claramente gozou de seu domínio ao longo de todos esses anos, até 2012. Em 2012, a Oracle decidiu adicionar o JavaFX ao seu JDK e foi então que começou a ganhar popularidade.


Um resumo sobre JavaFX

O JavaFX é, de acordo com mim, uma API moderna e de última geração para criar aplicativos GUI. Para não ficar confuso com o nome, o JavaFX é escrito principalmente em C ++ e a próxima linguagem principal usada é Java; seu nome sugere apenas que a API é para aplicativos Java e não para C ++.

O que se pode fazer no JavaFX que não é possível no Swing?

O JavaFX tem suporte para customização usando CSS (sim, o mesmo CSS usado para embelezar páginas da web) e XML. Por um momento, apenas foque no CSS. CSS, ou seja, as Cascading Style Sheets podem ser usadas para modificar a aparência do aplicativo. Um exemplo muito ingênuo pode ser alterar a cor do botão ao passar o mouse sobre ele e ter outra cor quando o mouse não aponta o botão. Os documentos da Oracle sobre a presença de CSS no JavaFX dizem: “CSS (Cascading Style Sheets) separa aparência e estilo da implementação, para que os desenvolvedores possam se concentrar na codificação. Os designers gráficos podem personalizar facilmente a aparência e o estilo do aplicativo por meio do CSS. Se você possui experiência em design da web ou deseja separar a interface do usuário (IU) e a lógica de back-end,

Com o JavaFX, também é possível criar aplicativos 3D bonitos, quase impossíveis no Swing, e fazer o mesmo com o AWT torna a idéia de estabelecer uma colônia em Marte muito mais simples. Sim, admito que usando outra API, Java3D, é possível criar aplicativos 3D em AWT, mas trabalhar com isso é realmente difícil em comparação com o JavaFX.


Como começar com o JavaFX?

Os documentos Oracle fornecem uma excelente vantagem em JavaFX. À medida que se avança na trilha de aprendizado dessa ferramenta formidável, ele / ela pode começar a desenvolver pequenos projetos e verificar com o StackOverflow sempre que travar. O próximo passo seria visualizar e aprender com algumas APIs e aplicativos bem criados, criados no JavaFX no GitHub. Existe um repositório no GitHub que possui uma lista com curadoria de todos os aplicativos, estruturas, livros, tutoriais e muito mais do JavaFX em um único local. Continue e explore-o assim que terminar de ler este artigo.

Qual JDK usar para isso?

O JDK 8 seria de longe a melhor escolha. O motivo é que o JDK 8 é suportado até 2022 e a Oracle anunciou recentemente que o JavaFX não seria mais enviado junto com os JDKs a partir do JDK 11. O JavaFX está indo de código aberto sob o nome OpenJFX e o JavaFX versão 11 (estável) está próximo canto que seria lançado separadamente como um pacote JAR.

Uma dica rápida: sempre que fizer uma pergunta relacionada ao JavaFX no StackOverflow, mencione a versão, pois o JavaFX mudou muito rapidamente no passado.

Fonte: What is JavaFX and how is it different from Swing and AWT? Diponível em: https://medium.com/@japkeerat21/what-is-javafx-and-how-is-it-different-from-swing-and-awt-54de995e4869 Acesso em: 16 de fevereiro de 2020.

Por que estudar Java?

Se você tem o mínimo de conhecimento em linguagem de programação você sabe que o comando básico de qualquer uma delas é a exibição (print) de um texto na tela. Ou vai me dizer que nunca fez um “Hello World” na primeira aula de uma linguagem nova?

Porém, no Java esse comando é um pouco diferente das demais linguagens que você aprende, como podemos observar abaixo:

C: printf();

Python: print()

Java: System.out.print()

Tá, mas o que isso quer dizer?

Significa que quando você programa em Java um texto pode ser exibido em variados tipos de sistemas, seja em um relógio ou em um monitor de computador ou até mesmo em um celular (você com certeza lembra dos jogos nos celulares antigos que sempre inicializavam com a xícara de café do Java).

Portando, aprendendo Java você não só estará a um passo do aprendizado de desenvolvimento web, devido ao paradigma de programação Orientado A Objetos que é bastante utilizada nela, mas também terá um leque de possibilidades de onde implementar o seu software.