Diferença entre AWT e Swing

Java é um software de desenvolvimento de aplicativos independente de plataforma. Ele fornece um conjunto de software que pode ser usado para desenvolver aplicativos. Um desses softwares é o AWT (Abstract Window Toolkit). É um conjunto de interface de programa usado para criar componentes da interface gráfica do usuário (GUI) e outros serviços necessários para a GUI em Java. Faz parte das Java Foundation Classes. Facilita o desenvolvimento da GUI. O AWT inclui um conjunto de widgets de janelas, gráficos e interface do usuário. Ele também possui ferramentas robustas de manipulação de eventos, criação de imagens, um gerenciador de layout para layouts de janelas flexíveis. Neste tópico, vamos aprender sobre AWT vs Swing e suas diferenças

Swing é o kit de ferramentas mais recente baseado no AWT. O Swing oferece ao programador flexibilidade de independência da plataforma. Ao contrário do AWT, o programador pode criar objetos GUI mais generalizados usando o Swing.

Visão geral do AWT : O AWT é usado para suportar a interface do usuário no aplicativo Java. Ele fornece a abstração de alto nível para o programa Java, pois oculta os detalhes subjacentes da GUI. Como o AWT é uma api construída no sistema operacional para fornecer uma interface gráfica com o usuário para Java. Seu componente depende da contraparte subjacente (como a aparência desse SO) para lidar com sua funcionalidade. Assim, esses componentes são freqüentemente chamados de componentes "pesados".

Os recursos do AWT incluem:

  • Um rico conjunto de componentes da interface do usuário.
  • O robusto modelo de manipulação de eventos
  • Gerenciador de layout para diferentes layouts de janela
  • As classes de transferência de dados oferecem suporte a recortar através da plataforma nativa.

Visão geral do Swing : O Swing é construído no AWT, faz parte das Java Foundation Classes. Swing é completamente baseado em Java, por isso sua plataforma é independente. É usado para criar uma GUI mais eficaz que o AWT.

Características do Swing:

  • Todos os recursos do AWT
  • Fornece um rico conjunto de componentes de nível superior, como uma árvore, painéis com guias, caixas de listagem etc.
  • Aparência e sensação plugáveis.
  • Não há dependência de componentes pares.

Comparação cara a cara entre AWT x Swing (Infográficos)

Abaixo está a comparação dos 11 melhores entre AWT e Swing:

Principais diferenças entre AWT e Swing:

Como o AWT é uma ponte entre o aplicativo e a interface nativa subjacente, sua implementação em um novo sistema operacional pode incluir muito trabalho. Porque requer que um par nativo seja desenvolvido novamente. O uso de pares nativos limita a funcionalidade do AWT. O AWT tem dois níveis de APIs -

  • Um fornece uma interface geral básica entre o aplicativo e o SO nativo.
  • Segundo widget da GUI que fornece objetos code-behind direcionados na tela do AWT.

O uso de componentes nativos torna o AWT rápido. Daí melhora seu desempenho. Além disso, a maioria dos navegadores da Web suporta AWT, não há necessidade de plug-in Java para Applets AWT. Mas o AWT possui um conjunto menor de componentes, portanto, os usuários precisam escrever um código personalizado para obter seus próprios componentes baseados no AWT. Os componentes do AWT não suportam recursos como barra de título e barras de menus.

Swing é a extensão do AWT. Não é a substituição exata do AWT. Por isso, possui recursos AWT com a extensibilidade do JAVA. Portanto, todos os componentes presentes no AWT também estão presentes no Swing. Mas o Swing não requer programação por pares, tornando-o independente e leve da plataforma. Além disso, o Swing permite uma maior variedade de componentes.

Swing é uma arquitetura baseada em modular. Ele suporta plugging para implementação personalizada. O usuário pode criar sua própria implementação para substituir a implementação padrão baseada em Java. O Swing também fornece suporte para o mecanismo de tempo de execução. O método de composição indireta permite que o balanço responda às alterações no tempo de execução de acordo com o ambiente do aplicativo. O Swing suporta recursos como ícones e dicas de ferramentas. A Sun está ativamente envolvida no desenvolvimento do Swing, portanto, de vez em quando o Swing obtém novos recursos e melhor do que antes.

A maior parte do navegador da web não suporta oscilação. Assim, é preciso ter o plugin Java para swing. O balanço é mais lento em comparação com o AWT. Como os componentes Swing lidam com sua própria pintura (em vez de usar APIs nativas como o DirectX no Windows), isso pode gerar falhas gráficas.

Tabela de comparação entre AWT e Swing:

AWTBALANÇO
AWT significa Abstract Window Toolkit.O Swing faz parte do Java Foundation Classes (JFC).
O AWT depende da plataforma. Seu código reside no sistema operacional do sistema, portanto, torna impossível a independência da plataforma.Os componentes de giro são feitos em JAVA. Assim, tornando a plataforma independente.
Os componentes do AWT são pesados.Os componentes do giro são leves.
O AWT não segue o MVC (Model View Controller).O balanço é baseado no MVC.
Os componentes do AWT requerem java.awt.packageOs componentes do balanço requerem javax.swing.package.
O AWT não possui os painéis Jtable e Jtabbed.O balanço possui os painéis Jtable e Jtabbed.
O AWT depende da plataforma, portanto, a aparência e a sensação não são muito diferentes.O balanço pode ter uma aparência diferente.
O AWT ocupa mais espaço na memória.O balanço ocupa menos espaço na memória.
O AWT é menos poderoso que o Swing.Swing é a extensão do AWT, portanto, muitas desvantagens são removidas.
A aparência do AWT depende da plataforma.A aparência do Swing é independente da plataforma e do sistema operacional subjacentes.
Os componentes do AWT dependem do código nativo (pares) para funcionar corretamente. É por isso que esses componentes são "componentes pesados".Swing não tem essa dependência. Portanto, esses componentes são "Componentes leves".

Conclusão:

AWT vs Swing são usados ​​para criar uma interface gráfica com o usuário em Java. Ambos são robustos e têm seus próprios prós e contras. O componente AWT é apropriado para o desenvolvimento simples de aplicativos, projetado principalmente para ser executado em um único sistema operacional. Considerando que swing é a interface mais recente que é completamente construída em Java. O Swing dá ao usuário a liberdade de codificar uma vez e é executado em qualquer lugar. Ele também fornece uma gama mais ampla de componentes que o AWT. Depende totalmente dos requisitos do usuário. Embora o AWT seja um desenvolvimento antigo, ele ainda está acontecendo no AWT e está melhorando. Se o requisito for parecer e parecer mais com o sistema operacional subjacente, o AWT seria uma opção melhor. Se você deseja uma GUI mais flexível, é bom usar o swing.

Artigos recomendados

Este foi um guia para a principal diferença entre AWT x Swing. Aqui também discutimos as principais diferenças entre AWT e Swing com infográficos e tabela de comparação. Você também pode consultar os seguintes artigos para saber mais -

  1. Java vs Ruby - Qual é o Melhor?
  2. Python vs Scala - Principais Diferenças
  3. Diferença entre HTML5 e Flash
  4. WordPress vs Drupal
  5. Etiqueta JavaFX
  6. Layouts JavaFX
  7. Tipos e como criar gráficos JavaFx?
  8. Slider JavaFX
  9. Como inserir texto no JavaFX TextField?
  10. Construtores e métodos do botão JavaFx
  11. Os 15 principais métodos de HBox no JavaFX