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.