Jython: utilizzo della libreria Swing GUI

Una delle caratteristiche principali di Jython è la sua capacità di utilizzare la libreria Swing GUI in JDK. La distribuzione Standard Python (spesso chiamata CPython) ha l'estensioneTkinter GUI libraryspedito con esso. Altre librerie GUI comePyQt e WxPython sono disponibili anche per l'uso con esso, ma la libreria swing offre un toolkit GUI indipendente dalla piattaforma.

L'utilizzo della libreria swing in Jython è molto più semplice rispetto all'utilizzo in Java. In Java le classi anonime devono essere utilizzate per creare il binding di eventi. In Jython, possiamo semplicemente passare una funzione per lo stesso scopo.

La finestra di primo livello di base viene creata dichiarando un oggetto del JFrame classe imposta la sua proprietà visible su true. Per questo, la classe Jframe deve essere importata dal pacchetto swing.

from javax.swing import JFrame

La classe JFrame ha più costruttori con un numero variabile di argomenti. Useremo quello, che prende una stringa come argomento e la imposta come titolo.

frame = JFrame(“Hello”)

Imposta le proprietà di dimensione e posizione del frame prima di impostare la sua proprietà visible su true. Memorizza il codice seguente comeframe.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)

Esegui lo script precedente dal prompt dei comandi. Verrà visualizzato il seguente output mostrando una finestra.

La libreria Swing GUI è fornita sotto forma di javax.swingpacchetto in Java. Le sue principali classi di contenitori,JFrame e JDialogderivano rispettivamente dalle classi Frame e Dialog, che si trovano nella libreria AWT. Altri controlli GUI comeJLabel, JButton, JTextField, ecc. sono derivati ​​dalla classe JComponent.

La figura seguente mostra la gerarchia della classe del pacchetto Swing.

La tabella seguente riassume le diverse classi di controllo della GUI in una libreria swing:

Sr.No. Classe e descrizione
1

JLabel

Un oggetto JLabel è un componente per posizionare il testo in un contenitore.

2

JButton

Questa classe crea un pulsante etichettato.

3

JColorChooser

Un JColorChooser fornisce un pannello di controlli progettato per consentire a un utente di manipolare e selezionare un colore.

4

JCheckBox

Un JCheckBox è un componente grafico che può trovarsi in un file on (vero) o off stato (falso).

5

JRadioButton

La classe JRadioButton è un componente grafico che può essere in uno stato on (true) o off (false). in un gruppo.

6

JList

Un componente JList presenta all'utente un elenco a scorrimento di elementi di testo.

7

JComboBox

Un componente JComboBox presenta all'utente un elenco a discesa di elementi

8

JTextField

Un oggetto JTextField è un componente di testo che consente la modifica di una singola riga di testo.

9

JPasswordField

Un oggetto JPasswordField è un componente di testo specializzato per l'immissione di password.

10

JTextArea

Un oggetto JTextArea è un componente di testo che consente la modifica di più righe di testo.

11

ImageIcon

Un controllo ImageIcon è un'implementazione dell'interfaccia Icon che disegna icone dalle immagini

12

JScrollbar

Un controllo barra di scorrimento rappresenta un componente barra di scorrimento per consentire all'utente di selezionare da un intervallo di valori.

13

JOptionPane

JOptionPane fornisce una serie di finestre di dialogo standard che richiedono agli utenti un valore o li informano di qualcosa.

14

JFileChooser

Un controllo JFileChooser rappresenta una finestra di dialogo da cui l'utente può selezionare un file.

15

JProgressBar

Man mano che l'attività procede verso il completamento, la barra di avanzamento mostra la percentuale di completamento dell'attività.

16

JSlider

Un JSlider consente all'utente di selezionare graficamente un valore facendo scorrere una manopola all'interno di un intervallo limitato.

17

JSpinner

Un JSpinner è un campo di input a riga singola che consente all'utente di selezionare un numero o un valore di oggetto da una sequenza ordinata.

Useremo alcuni di questi controlli negli esempi successivi.