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.