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.