Jython - Usando a biblioteca Swing GUI
Um dos principais recursos do Jython é sua capacidade de usar a biblioteca Swing GUI no JDK. A distribuição Python padrão (frequentemente chamada de CPython) tem oTkinter GUI libraryenviado com ele. Outras bibliotecas de GUI comoPyQt e WxPython também estão disponíveis para uso com ele, mas a biblioteca swing oferece um kit de ferramentas GUI independente de plataforma.
Usar a biblioteca swing em Jython é muito mais fácil em comparação a usá-la em Java. Em Java, as classes anônimas devem ser usadas para criar a associação de eventos. Em Jython, podemos simplesmente passar uma função para o mesmo propósito.
A janela básica de nível superior é criada declarando um objeto do JFrame classe defina sua propriedade visible como true. Para isso, a classe Jframe precisa ser importada do pacote swing.
from javax.swing import JFrame 
    A classe JFrame possui vários construtores com número variável de argumentos. Devemos usar aquele, que pega uma string como argumento e a define como título.
frame = JFrame(“Hello”) 
    Defina as propriedades de tamanho e localização do quadro antes de definir sua propriedade visible como true. Armazene o seguinte código comoframe.py.
from javax.swing import JFrame
frame = JFrame("Hello")
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.setLocation(100,100)
frame.setSize(300,200)
frame.setVisible(True) 
    Execute o script acima no prompt de comando. Ele exibirá a seguinte saída mostrando uma janela.
                A biblioteca da GUI do swing é fornecida na forma de javax.swingpacote em Java. Suas principais classes de contêineres,JFrame e JDialogsão respectivamente derivados das classes Frame e Dialog, que estão na biblioteca AWT. Outros controles GUI comoJLabel, JButton, JTextField, etc., são derivados da classe JComponent.
A ilustração a seguir mostra a hierarquia de classes de pacote Swing.
                A tabela a seguir resume as diferentes classes de controle GUI em uma biblioteca swing -
| Sr. Não. | Classe e descrição | 
|---|---|
| 1 | JLabel Um objeto JLabel é um componente para colocar texto em um contêiner.  |  
      
| 2 | JButton Esta classe cria um botão rotulado.  |  
      
| 3 | JColorChooser Um JColorChooser fornece um painel de controles projetado para permitir que um usuário manipule e selecione uma cor.  |  
      
| 4 | JCheckBox Um JCheckBox é um componente gráfico que pode estar em um on (verdadeiro ou off (falso) estado.  |  
      
| 5 | JRadioButton A classe JRadioButton é um componente gráfico que pode estar no estado ativado (verdadeiro) ou desativado (falso). num grupo.  |  
      
| 6 | JList Um componente JList apresenta ao usuário uma lista de rolagem de itens de texto.  |  
      
| 7 | JComboBox Um componente JComboBox apresenta ao usuário uma lista suspensa de itens  |  
      
| 8 | JTextField Um objeto JTextField é um componente de texto que permite a edição de uma única linha de texto.  |  
      
| 9 | JPasswordField Um objeto JPasswordField é um componente de texto especializado para entrada de senha.  |  
      
| 10 | JTextArea Um objeto JTextArea é um componente de texto que permite a edição de várias linhas de texto.  |  
      
| 11 | ImageIcon Um controle ImageIcon é uma implementação da interface do ícone que pinta ícones a partir de imagens  |  
      
| 12 | JScrollbar Um controle da barra de rolagem representa um componente da barra de rolagem para permitir que o usuário selecione a partir de um intervalo de valores.  |  
      
| 13 | JOptionPane JOptionPane fornece um conjunto de caixas de diálogo padrão que solicitam aos usuários um valor ou os informa sobre algo.  |  
      
| 14 | JFileChooser Um controle JFileChooser representa uma janela de diálogo na qual o usuário pode selecionar um arquivo.  |  
      
| 15 | JProgressBar Conforme a tarefa avança em direção à conclusão, a barra de progresso exibe a porcentagem de conclusão da tarefa.  |  
      
| 16 | JSlider Um JSlider permite que o usuário selecione graficamente um valor deslizando um botão dentro de um intervalo limitado.  |  
      
| 17 | JSpinner Um JSpinner é um campo de entrada de linha única que permite ao usuário selecionar um número ou valor de objeto em uma sequência ordenada.  |  
      
Estaríamos usando alguns desses controles em exemplos subsequentes.