10 Diferenças entre javafx e swing

Se você é um programador Java experiente, você tem, sem dúvida trabalhou com balanço para criar interfaces de usuário. A Oracle não abandonou completamente Swing - não é obsoleto, e aplicações Swing continuar a trabalhar. Mas nenhum trabalho está sendo feito mais para melhorar Swing, e Oracle deixou claro que o JavaFX é o futuro.

Video: Moving from Swing to JavaFX

Aqui estão dez diferenças básicas entre JavaFX e Swing.

Em JavaFX, todo o mundo é um palco

No balanço, a classe que contém os componentes de interface do usuário é chamado de quadro, armação e é definido pela JFrame classe. Um quadro é essencialmente uma janela vazia para o qual você pode adicionar um painel, que serve como um recipiente para seus elementos de interface do usuário. Um painel é definido pela JPanel classe.

A aplicação Swing é realmente uma classe que estende a JFrame classe. Para exibir os componentes de interface do usuário, você adicionar componentes a um JPanel e depois adicionar o painel na armação.

JavaFX utiliza a metáfora de um teatro para modelar os recipientes de alto nível de uma aplicação. UMA etapa (Definido pela Etapa classe) representa o mais alto nível de recipiente - tipicamente, uma janela, mas em alguns sistemas de operação, a etapa pode representar a superfície de exibição inteiro. Os controles individuais e outros componentes que compõem a interface do usuário estão contidos em um cena (Definido pela Cena classe). Um aplicativo pode ter mais de uma cena, mas apenas uma das cenas pode ser exibido no palco em um determinado momento.

Video: 10 DIFERENÇAS entre CANADÁ e ESTADOS UNIDOS

Uma cena contém uma grafo de cena, que é o conceito mais importante em JavaFX. O grafo de cena é uma coleção de todos os elementos que compõem uma interface de usuário - grupos, layouts, controles e formas. Esses objetos são chamados nós e são todos derivados da classe. o classe tem muitas características e recursos úteis que são automaticamente disponibilizados para qualquer objeto que você pode adicionar à sua interface de usuário. Por exemplo, a define uma classe setRotate método que permite que você gire qualquer nó no grafo de cena.

Em JavaFX, gerenciadores de layout são nós

Em Swing, um layout é associada a um JPanel. O de nível superior JPanel dá o layout básico para o quadro. Se você quiser ninho layouts adicionais dentro do esquema de nível superior, você deve criar adicional JPanels, definir seus layouts associados e, em seguida, adicioná-los à disposição de nível superior.

Video: 10 Diferenças Entre a Escola Brasileira e a Japonesa

Em JavaFX, layouts são subclasses da classe, assim como controles e formas. Layouts conter um conjunto de nodos, e qualquer nó contido em uma disposição pode ser qualquer tipo de nó: um controlo, uma forma, ou outra disposição. Este esquema é muito menos complicado do que a associação do balanço de layouts com painéis.

JavaFX tem melhorado o tratamento de eventos

Ambos JavaFX e eventos uso balanço manipulação para responder a eventos de entrada do usuário. No entanto, você vai descobrir que eventos em JavaFX é melhor pensada e mais consistente do que seus equivalentes em Swing. Mas a maior manipulação de eventos razão é melhorada em JavaFX é por causa de sua dependência de propriedades.

JavaFX oferece suporte a propriedades



JavaFX suporta os conceitos de Propriedades e usa propriedades extensivamente ao longo das suas classes. Simplificando, a propriedade é uma variável cujo valor pode ser observado. Você pode registrar um ouvinte com qualquer propriedade, o que lhe permite escrever código que é acionado automaticamente sempre que as alterações de propriedade. Além disso, você pode ligar Propriedades para o outro, o que significa que, se valor muda uma propriedade, o outro valor da propriedade muda automaticamente com ele.

Como quase todas as características de elementos de interface do usuário são gerenciados por meio de propriedades, JavaFX fornece manipulação de eventos que é inédito no Swing. Por exemplo, em JavaFX, você pode anexar um ouvinte de evento para a cor de uma forma. Se a forma muda de cor, o seu código de ouvinte de evento é executado. Você não pode ter um uso para a capacidade, mas você pode usá-lo se você precisar.

JavaFX é skinnable com CSS

Uma das melhores características do JavaFX é que você pode controlar a formatação com Cascading Style Sheets (CSS). Apenas sobre todos os aspectos da aparência de sua interface de usuário pode ser definido por uma regra de estilo, e você pode facilmente permitir que o usuário escolha qual das várias folhas de estilo disponíveis para aplicar à cena. Assim, você pode mudar toda a aparência de sua aplicação com uma única chamada de método.

JavaFX tem controles mais consistentes

Em geral, você verá que a hierarquia de controle JavaFX é mais completa do Swing. Ambos têm todos os controles básicos - botões, caixas de seleção, caixas de combinação e similares. Mas JavaFX tem vários controles interessantes que balanço não tem, como o dobrável TitledPane de controlo e o Acordeão controlo que organiza múltipla TitledPane controla em uma pilha. E o fato de que todos esses controles são skinnable por CSS lhes dá uma enorme vantagem sobre Swing.

JavaFX tem efeitos especiais

o javafx.scene.effect pacote contém um número de classes que pode facilmente aplicar efeitos especiais a qualquer nó no grafo de cena. Essas classes permitem aplicar facilmente sombras, reflexos, borrões, e outros efeitos visuais interessantes que podem transformar a aparência de sua interface de usuário.

Video: 10 diferenças gritantes entre BRASIL & AUSTRÁLIA

Animação é mais fácil em JavaFX

Animação é possível em Swing, mas balance não fornece qualquer suporte direto para ele. Para animar um componente Swing, você deve configurar seus próprios temporizadores e construir a sua própria lógica para executar a animação.

Em contraste, JavaFX foi construído com suporte para animações sofisticadas que podem ser aplicadas a qualquer nó no grafo de cena. Você pode usar uma das várias classes de transição built-in para executar animações comuns, como fades, rotação ou caminhos de movimento. Ou, você pode usar o KeyFrame e Timeline aulas para configurar facilmente animações personalizadas.

JavaFX suporta dispositivos de toque moderno

Balanço carece de qualquer suporte para dispositivos de toque moderno. Em contraste, o JavaFX foi construído com suporte para gestos de toque comuns, tais como o deslocamento, passando, em rotação, e que zumbe. Lidar com esses eventos em JavaFX é tão fácil como lidar com qualquer outro tipo de evento: Você simplesmente instalar um ouvinte de evento no evento de toque e, em seguida, escrever código que responde adequadamente.

JavaFX não tem equivalente a JOptionPane

Não seria justo para preencher completamente esta lista de dez diferenças com pontos que favorecem claramente JavaFX. Aqui está um aborrecimento menor do JavaFX: Ele não tem equivalente incorporado para baloiço JOptionPane classe, que é muito útil para a exibição de mensagens de alerta curtos ou ficar entrada simples do usuário. Em JavaFX, você tem que criar o seu próprio equivalente a esta classe útil.


Publicações relacionadas