JavaFX é uma plataforma de software baseada em Java para o desenvolvimento de aplicações com interfaces gráficas. Ela oferece recursos para criar componentes de interface, gráficos, animações, reproduzir conteúdo multimídia e incorporar conteúdo da Web. O projeto de código aberto que mantém a tecnologia é conhecido como OpenJFX.
O JavaFX disponibiliza APIs para a construção de interfaces gráficas, incluindo controles, layouts, gráficos, animações e efeitos visuais. A plataforma também oferece recursos para reprodução de áudio e vídeo e para exibição de conteúdo HTML por meio do componente WebView.
As interfaces podem ser definidas programaticamente em Java ou descritas com FXML, uma linguagem de marcação baseada em XML utilizada para estruturar componentes da interface. A aparência dos componentes pode ser configurada com uma linguagem de estilos baseada em CSS. A documentação da plataforma também descreve recursos de integração entre JavaFX e Swing.
O JavaFX pode ser utilizado no desenvolvimento de aplicações para computadores e, com implementações e ferramentas adequadas, para outros ambientes. A disponibilidade e a forma de implantação variam conforme a plataforma de destino e a versão utilizada.
O projeto OpenJFX mantém a implementação de código aberto do JavaFX. O software é distribuído sob a licença GNU General Public License, com a exceção de classpath, conforme a descrição oficial do projeto.
Nas versões recentes, o JavaFX é distribuído separadamente do JDK, por meio de um SDK específico, módulos ou dependências disponíveis no Maven Central. O JavaFX 8 constitui uma exceção histórica importante, pois foi incluído no JDK 8. A Oracle mantém documentação e opções de distribuição próprias, enquanto o OpenJFX fornece recursos para o desenvolvimento com versões posteriores.
O Scene Builder é uma ferramenta visual para a criação de interfaces JavaFX. Ela permite organizar componentes e gerar arquivos FXML que podem ser utilizados por aplicações desenvolvidas com a plataforma.
A origem do JavaFX está associada ao projeto F3, uma linguagem de programação voltada à criação de interfaces gráficas, desenvolvida por Chris Oliver. A Sun Microsystems apresentou o JavaFX na conferência JavaOne, em 2007.
Em 4 de dezembro de 2008, a Sun lançou o JavaFX 1.0, uma plataforma destinada ao desenvolvimento de aplicações com recursos gráficos e multimídia. Essa geração utilizava o JavaFX Script, uma linguagem declarativa própria.
O JavaFX 2.0, lançado em 2011, introduziu APIs baseadas em Java, ampliando a possibilidade de desenvolvimento com a linguagem Java e suas ferramentas. Essa versão também incluía recursos gráficos, controles de interface, suporte a mídia, incorporação de conteúdo HTML e FXML. O JavaFX Script deixou de ser suportado a partir dessa geração.
O JavaFX 8 foi lançado em 2014 e integrou a distribuição do JDK 8. Posteriormente, o JavaFX passou a ser distribuído separadamente do JDK nas versões mais recentes, permitindo que a plataforma evoluísse em um ciclo próprio. O OpenJFX tornou-se o projeto de código aberto associado ao desenvolvimento dessa implementação.