Jython: uso de la biblioteca GUI de Swing

Una de las principales características de Jython es su capacidad para utilizar la biblioteca Swing GUI en JDK. La distribución estándar de Python (a menudo denominada CPython) tiene laTkinter GUI libraryenviado con él. Otras bibliotecas GUI comoPyQt y WxPython también están disponibles para usar con él, pero la biblioteca swing ofrece un juego de herramientas GUI independiente de la plataforma.

Usar la biblioteca swing en Jython es mucho más fácil en comparación con usarla en Java. En Java, las clases anónimas deben usarse para crear un enlace de eventos. En Jython, simplemente podemos pasar una función con el mismo propósito.

La ventana básica de nivel superior se crea declarando un objeto del JFrame classy establezca su propiedad visible en true. Para eso, la clase Jframe debe importarse del paquete swing.

from javax.swing import JFrame

La clase JFrame tiene varios constructores con un número variable de argumentos. Usaremos el uno, que toma una cadena como argumento y la establece como título.

frame = JFrame(“Hello”)

Establezca las propiedades de ubicación y tamaño del marco antes de establecer su propiedad visible en verdadero. Almacene el siguiente 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)

Ejecute el script anterior desde el símbolo del sistema. Mostrará la siguiente salida mostrando una ventana.

La biblioteca de GUI swing se proporciona en forma de javax.swingpaquete en Java. Sus principales clases de contenedores,JFrame y JDialogse derivan respectivamente de las clases Frame y Dialog, que se encuentran en la biblioteca AWT. Otros controles GUI comoJLabel, JButton, JTextField, etc., se derivan de la clase JComponent.

La siguiente ilustración muestra la jerarquía de clases de paquetes Swing.

La siguiente tabla resume las diferentes clases de control de GUI en una biblioteca swing:

No Señor. Clase y descripción
1

JLabel

Un objeto JLabel es un componente para colocar texto en un contenedor.

2

JButton

Esta clase crea un botón etiquetado.

3

JColorChooser

Un JColorChooser proporciona un panel de controles diseñado para permitir al usuario manipular y seleccionar un color.

4

JCheckBox

Un JCheckBox es un componente gráfico que puede estar en un on (verdad o off (falso) estado.

5

JRadioButton

La clase JRadioButton es un componente gráfico que puede estar en estado activado (verdadero) o desactivado (falso). en un grupo.

6

JList

Un componente JList presenta al usuario una lista de elementos de texto que se desplaza.

7

JComboBox

Un componente JComboBox presenta al usuario una lista desplegable de elementos

8

JTextField

Un objeto JTextField es un componente de texto que permite la edición de una sola línea de texto.

9

JPasswordField

Un objeto JPasswordField es un componente de texto especializado para la entrada de contraseñas.

10

JTextArea

Un objeto JTextArea es un componente de texto que permite editar varias líneas de texto.

11

ImageIcon

Un control ImageIcon es una implementación de la interfaz de iconos que pinta iconos de imágenes

12

JScrollbar

Un control de barra de desplazamiento representa un componente de la barra de desplazamiento para permitir al usuario seleccionar entre un rango de valores.

13

JOptionPane

JOptionPane proporciona un conjunto de cuadros de diálogo estándar que solicitan a los usuarios un valor o les informa algo.

14

JFileChooser

Un control JFileChooser representa una ventana de diálogo desde la que el usuario puede seleccionar un archivo.

15

JProgressBar

A medida que la tarea avanza hacia su finalización, la barra de progreso muestra el porcentaje de finalización de la tarea.

dieciséis

JSlider

Un JSlider permite al usuario seleccionar gráficamente un valor deslizando una perilla dentro de un intervalo limitado.

17

JSpinner

Un JSpinner es un campo de entrada de una sola línea que permite al usuario seleccionar un número o un valor de objeto de una secuencia ordenada.

Estaríamos usando algunos de estos controles en ejemplos posteriores.