JavaFX - Arquitetura

JavaFX fornece uma API completa com um rico conjunto de classes e interfaces para construir aplicativos GUI com gráficos ricos. Os pacotes importantes desta API são -

  • javafx.animation - Contém classes para adicionar animações baseadas em transição, como preencher, fade, girar, dimensionar e tradução, para os nós JavaFX.

  • javafx.application - Contém um conjunto de classes responsáveis ​​pelo ciclo de vida da aplicação JavaFX.

  • javafx.css - Contém classes para adicionar estilo semelhante a CSS a aplicativos JavaFX GUI.

  • javafx.event - Contém classes e interfaces para entregar e manipular eventos JavaFX.

  • javafx.geometry - Contém classes para definir objetos 2D e realizar operações sobre eles.

  • javafx.stage - Este pacote contém as classes de contêiner de nível superior para aplicativos JavaFX.

  • javafx.scene- Este pacote fornece classes e interfaces para suportar o grafo de cena. Além disso, ele também fornece subpacotes como canvas, gráfico, controle, efeito, imagem, entrada, layout, mídia, pintura, forma, texto, transformação, web, etc. .

A ilustração a seguir mostra a arquitetura da API JavaFX. Aqui você pode ver os componentes que oferecem suporte à API JavaFX.

Gráfico de cena

No JavaFX, os aplicativos GUI foram codificados usando um Scene Graph. Um Scene Graph é o ponto de partida da construção do aplicativo GUI. Ele contém as primitivas de aplicativo (GUI) que são denominadas como nós.

Um nó é um objeto visual / gráfico e pode incluir -

  • Geometrical (Graphical) objects - (2D e 3D), como círculo, retângulo, polígono, etc.

  • UI controls - como botão, caixa de seleção, caixa de escolha, área de texto, etc.

  • Containers - (painéis de layout), como Painel de Borda, Painel de Grade, Painel de Fluxo, etc.

  • Media elements - como objetos de áudio, vídeo e imagem.

Em geral, uma coleção de nós cria um grafo de cena. Todos esses nós são organizados em uma ordem hierárquica, conforme mostrado abaixo.

Cada nó no grafo de cena tem um único pai, e o nó que não contém nenhum pai é conhecido como o root node.

Da mesma forma, cada nó tem um ou mais filhos, e o nó sem filhos é denominado como leaf node; um nó com filhos é denominado como umbranch node.

Uma instância de nó pode ser adicionada a um gráfico de cena apenas uma vez. Os nós de um grafo de cena podem ter efeitos, opacidade, transformações, manipuladores de eventos, manipuladores de eventos, estados específicos do aplicativo.

Prisma

Prisma é um high performance hardware–accelerated graphical pipelineque é usado para renderizar os gráficos em JavaFX. Ele pode renderizar gráficos 2-D e 3-D.

Para renderizar gráficos, um Prism usa -

  • DirectX 9 no Windows XP e Vista.
  • DirectX 11 no Windows 7.
  • OpenGL no Mac e Linux, sistemas incorporados.

Caso o suporte de hardware para gráficos no sistema não seja suficiente, o Prism usa o caminho de renderização do software para processar os gráficos.

Quando usado com uma placa gráfica ou GPU compatível, oferece gráficos mais suaves. Apenas no caso de o sistema não suportar uma placa gráfica, o Prism padroniza para a pilha de renderização do software (qualquer uma das duas anteriores).

GWT (Glass Windowing Toolkit)

Como o nome sugere, o GWT fornece serviços para gerenciar Windows, Timers, Superfícies e Filas de Eventos. O GWT conecta a plataforma JavaFX ao sistema operacional nativo.

Quantum Toolkit

É uma abstração dos componentes de baixo nível do Prism, Glass, Media Engine e Web Engine. Ele une o Prism e o GWT e os disponibiliza para o JavaFX.

WebView

Usando o JavaFX, você também pode incorporar conteúdo HTML em um gráfico de cena. WebView é o componente do JavaFX usado para processar este conteúdo. Ele usa uma tecnologia chamadaWeb Kit, que é um mecanismo de navegador interno de código aberto. Este componente suporta diferentes tecnologias web como HTML5, CSS, JavaScript, DOM e SVG.

Usando o WebView, você pode -

  • Renderize o conteúdo HTML de um URL local ou remoto.
  • Suporte ao histórico e navegação para trás e para a frente.
  • Recarregue o conteúdo.
  • Aplique efeitos ao componente da web.
  • Edite o conteúdo HTML.
  • Execute comandos JavaScript.
  • Gerenciar eventos.

Em geral, usando o WebView, você pode controlar o conteúdo da web de Java.

Media Engine

o JavaFX media engine é baseado em um mecanismo de código aberto conhecido como Streamer. Este mecanismo de mídia oferece suporte à reprodução de conteúdo de vídeo e áudio.

O mecanismo de mídia JavaFX fornece suporte para áudio para os seguintes formatos de arquivo -

Audio
  • MP3
  • WAV
  • AIFF
Video
  • FLV

O pacote javafx.scene.mediacontém as classes e interfaces para fornecer funcionalidade de mídia em JavaFX. É fornecido na forma de três componentes, que são -

  • Media Object - Isso representa um arquivo de mídia

  • Media Player - Para reproduzir conteúdo de mídia.

  • Media View - Para exibir mídia.