Se você é um programador Java experiente, você trabalhava sem dúvida com o Swing para criar interfaces de usuário. O Oracle não recebeu completamente a oscilação – não está em desuso, e os pedidos de balança continuam funcionando. Mas não está funcionando mais para melhorar o balanço, e a Oracle deixou claro que JavaFX é o futuro.
Aqui estão dez diferenças básicas entre JavaFX e Swing.
em JavaFX, todos O mundo é um cenário
no balanço, a classe que contém os componentes da interface do usuário é chamada de estrutura e definida pela classe JFrame. Um enredo é essencialmente uma janela vazia para a qual um painel pode ser adicionado, que serve como um contêiner para os elementos da interface do usuário. Um painel é definido pela classe JPannel.
Um aplicativo de balanço é na verdade uma classe que expande a classe JPrame. Para visualizar os componentes da interface do usuário, adicione componentes a um jpanel e adicione o painel ao quadro.
JavaFX usa a metáfora de um teatro para modelar recipientes de alto nível de um aplicativo. Um cenário (definido pelo cenário de classe) representa o contêiner de nível mais alto – geralmente uma janela, mas em alguns sistemas operacionais, o estágio pode representar toda a superfície da tela. Controles individuais e outros componentes que formam a interface do usuário estão contidos em uma cena (definida pela cena da classe). Um aplicativo pode ter mais de uma cena, mas apenas uma das cenas pode ser exibida no palco em um determinado momento.
Uma cena contém um gráfico de cena, que é o conceito mais importante em JavaFX. O gráfico de cena é uma coleção de todos os elementos que compõem uma interface de usuário – grupos, projetos, controles e formas. Esses objetos são chamados de nós e são todos derivados do nó de classe. O nó de classe tem muitos recursos e recursos úteis que são executados automaticamente disponíveis para qualquer objeto que você possa adicionar à sua interface de usuário. Por exemplo, o nó de classe define um método Stopratate que permite girar qualquer nó no cenário gráfico.
em JavaFX, os controladores de distribuição são nós
No balanço, um design está associado a um jpanel. O jpannel de alto nível dá ao design básico para o quadro. Se você quiser aninhar projetos adicionais no design de alto nível, você deve criar jpanels adicionais, definir seus projetos associados e adicioná-los ao layout de nível mais alto.
Vídeo: Awt vs Swing vs JavaFX
no javafx, os desenhos são subclasses do nó de classe, bem como controles e formulários. Os projetos contêm uma coleção de nós, e qualquer nó contido em uma provisão pode ser qualquer tipo de nó: um controle, uma forma ou outra disposição. Este esquema é muito menos pesado do que a associação de oscilação dos projetos do painel.
JavaFX tem o controle de eventos aprimorado
tanto JavaFX quanto o evento usam o gerenciamento de oscilação para responder à entrada do usuário de eventos. No entanto, você perceberá que os eventos em JavaFX são mais projetados e mais consistentes do que seus equivalentes de balanço. Mas a maior razão para a manipulação de eventos é melhorada em JavaFX é devido à sua dependência de propriedades.
JavaFX suporta propriedades
javafx é compatível com os conceitos de propriedades e usa as propriedades extensivamente através de suas classes. Em suma, uma propriedade é uma variável cujo valor pode ser observado. Você pode registrar um ouvinte com qualquer propriedade, que permite gravar código que seja ativado automaticamente toda vez que a propriedade é alterada. Além disso, as propriedades podem ser vinculadas, o que significa que, se você alterar o valor de uma propriedade, o outro valor da propriedade será alterado automaticamente com ele.
Porque quase todas as características dos elementos da interface do usuário São enviados através de propriedades, o JavaFX fornece controle de eventos que é incomum no balanço. Por exemplo, no JavaFX, você pode conectar um detector de eventos para a cor em uma forma. Se o formulário mudar de cor, o código do detector de eventos será executado. Você pode não ter um uso para capacidade, mas pode ser usado se necessário.
javafx é personalizável com CSS
Um dos melhores recursos do JavaFX é que você pode controlá-lo o formato com folhas de estilo em cascata (CSS). Quase todos os aspectos da aparência da interface do usuário podem ser estabelecidos por uma regra de estilo e podem ser facilmente permitidas para selecionar quais das várias folhas de estilo disponíveis para se inscreverem na cena. Portanto, você pode alterar todo o aspecto do seu aplicativo com uma única chamada para o método.
javafx tem um controle mais consistente
em geral, você descobrirá que a hierarquia de controle do JavaFX é mais completa que a oscilação de. Ambos têm todos os controles básicos – botões, caixas de seleção, tabelas combinadas e semelhantes. Mas JavaFX tem vários controles interessantes que não têm, como o controle de titledpane colapso e o acordeão de controle que organiza vários controles de titledpane em uma pilha. E o fato de que todos esses controles são personalizáveis usando CSS lhes dá uma grande vantagem sobre o balanço.
javafx tem efeitos especiais
javafx.scene.exfect o pacote contém várias classes que você Pode facilmente aplicar efeitos especiais a qualquer nó no cenário gráfico. Essas classes permitem facilmente aplicar sombras, reflexões, borrão e outros efeitos visuais interessantes que podem transformar o aspecto de sua interface de usuário.
animação é mais fácil no javafx
animação é possível no balanço, Mas o equilíbrio não fornece nenhum suporte direto a ele. Para incentivar um componente de swing, você deve configurar seus próprios temporizadores e criar sua própria lógica para executar a animação.
Vídeo: JavaFX e experiência de usuário rica
pelo contrário, JavaFX Ele incorporou ao suporte para animações sofisticadas que podem ser aplicadas a qualquer nó no cenário gráfico. Você pode usar um dos vários tipos de transição incorporada para realizar animações comuns, como elenco, rotações ou rotas de movimento. Ou, você pode usar as classes keyframe e cronologia para configurar facilmente animações personalizadas.
javafx é compatível com dispositivos de toque modernos
oscilação não tem suporte para dispositivos de toque modernos. Em contraste, o JavaFX incorporou o suporte para gestos táteis comuns, como deslocamento, slide, rotação e zoom. O manuseio desses eventos no JavaFX é tão fácil quanto o manuseio de qualquer outro tipo de evento: você só precisa instalar um detector de eventos no evento de toque e, em seguida, gravar código que responda corretamente.
javafx não Tem equivalente a JoptionPane
Não seria justo preencher completamente esta lista de dez pontos com diferenças que favorecem o JavaFX. Aqui está um pequeno aborrecimento de JavaFX: Não tem incorporado equivalente à classe JoptionPane, que é muito útil para visualização de mensagens de alerta curtas ou obter uma entrada simples para o usuário. Em JavaFX, você tem que criar seu próprio equivalente a essa classe útil.