Balanço
O Criador | Sun Microsystems |
---|---|
Desenvolvido por | Oráculo |
Status do projeto |
![]() |
Escrito em | Java |
Meio Ambiente | Máquina Virtual JAVA |
línguas | inglês |
Modelo | Biblioteca Java ( d ) |
Política de distribuição | Livre |
Licença | GLP |
Cronologia das versões
Swing é uma biblioteca gráfica para a linguagem de programação Java , parte do pacote Java Foundation Classes (JFC), incluído no J2SE . Swing é uma das principais mudanças trazidas pelo Java 2 em comparação com as versões anteriores.
O Swing oferece a capacidade de criar interfaces gráficas idênticas , independentemente do sistema operacional subjacente, ao custo de um desempenho inferior do que usar o Abstract Window Toolkit (AWT). Ele usa o princípio Model-View-Controller (MVC, componentes Swing na verdade desempenham o papel de visão no significado de MVC ) e tem várias opções de aparência para cada um dos componentes padrão.
Com o aparecimento do Java 8 em Março 2014, JavaFX torna-se a biblioteca gráfica oficial da linguagem Java, para todos os tipos de aplicativos (aplicativos móveis, aplicativos de desktop, aplicativos web), o desenvolvimento de seu predecessor Swing sendo abandonado (exceto para correção de bugs).
Desde as primeiras versões do Java, o Abstract Window Toolkit (AWT) fornece uma API independente do sistema operacional para implementar componentes gráficos. No AWT, cada componente é projetado e controlado por um componente nativo de terceiros específico para o sistema operacional. É por isso que os componentes do AWT são chamados de componentes pesados .
Pelo contrário, os componentes Swing são descritos como leves . Isso ocorre porque eles não exigem a alocação de recursos nativos do gerenciador de janelas subjacente, mas “emprestam” recursos de seus ancestrais.
Muito da API Swing é um complemento do AWT, em vez de uma substituição direta. A exibição é fornecida pelo Java2D , outro componente do JFC. No entanto, o uso conjunto de componentes leves e pesados dentro da mesma janela geralmente não é recomendado devido a problemas de gerenciamento de profundidade.
O programa a seguir é um hello world in Swing:
import javax.swing.JFrame; import javax.swing.JLabel; public class HelloWorld { public static void main(String[] args) { // on crée une fenêtre dont le titre est "Hello World!" JFrame frame = new JFrame("Hello World!"); // la fenêtre doit se fermer quand on clique sur la croix rouge frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); // on ajoute le texte "Hello, World!" dans la fenêtre frame.getContentPane().add(new JLabel("Hello, World!")); // on demande d'attribuer une taille minimale à la fenêtre // (juste assez pour voir tous les composants) frame.pack(); // on centre la fenêtre frame.setLocationRelativeTo(null); // on rend la fenêtre visible frame.setVisible(true); } }