Одной из основных особенностей Jython является его способность использовать библиотеку Swing GUI в JDK. Стандартный дистрибутив Python (часто называемый CPython) поставляется с библиотекой графического интерфейса пользователя Tkinter . Другие библиотеки GUI, такие как PyQt и WxPython , также доступны для использования с ним, но библиотека Swing предлагает независимый от платформы инструментарий GUI.
Использование библиотеки свинга в Jython намного проще по сравнению с использованием в Java. В Java анонимные классы должны использоваться для создания привязки событий. В Jython мы можем просто передать функцию для той же цели.
Основное окно верхнего уровня создается путем объявления объекта класса JFrame и установки его свойства visible в значение true. Для этого необходимо импортировать класс Jframe из пакета swing.
from javax.swing import JFrame
Класс JFrame имеет несколько конструкторов с различным количеством аргументов. Мы будем использовать тот, который принимает строку в качестве аргумента и устанавливает ее в качестве заголовка.
frame = JFrame(“Hello”)
Установите размер и расположение фрейма перед установкой его свойства visible в значение true. Сохраните следующий код как frame.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)
Запустите приведенный выше скрипт из командной строки. Он отобразит следующий вывод, показывающий окно.

Свинг-библиотека GUI предоставляется в виде пакета javax.swing на Java. Его основные контейнерные классы, JFrame и JDialog , соответственно получены из классов Frame и Dialog, которые находятся в библиотеке AWT. Другие элементы управления GUI, такие как JLabel, JButton, JTextField и т. Д., Являются производными от класса JComponent.
На следующем рисунке показана иерархия Swing Package Class.

Следующая таблица суммирует различные классы управления GUI в библиотеке колебания —
| Sr.No. | Класс и описание |
|---|---|
| 1 | JLabelОбъект JLabel — это компонент для размещения текста в контейнере. |
| 2 | JButtonЭтот класс создает помеченную кнопку. |
| 3 | JColorChooserJColorChooser предоставляет панель управления, разработанную, чтобы позволить пользователю манипулировать и выбирать цвет. |
| 4 | JCheckBoxJCheckBox — это графический компонент, который может находиться во включенном (true) или выключенном (false) состоянии. |
| 5 | JRadioButtonКласс JRadioButton — это графический компонент, который может находиться либо во включенном (истинном), либо в выключенном (ложном) состоянии. в группе. |
| 6 | JListКомпонент JList предоставляет пользователю список прокручиваемых текстовых элементов. |
| 7 | JComboBoxКомпонент JComboBox предоставляет пользователю выпадающий список элементов |
| 8 | JTextFieldОбъект JTextField — это текстовый компонент, который позволяет редактировать одну строку текста. |
| 9 | JPasswordFieldОбъект JPasswordField — это текстовый компонент, предназначенный для ввода пароля. |
| 10 | JTextAreaОбъект JTextArea — это текстовый компонент, который позволяет редактировать несколько строк текста. |
| 11 | ImageIconЭлемент управления ImageIcon — это реализация интерфейса Icon, который рисует значки из изображени |
| 12 | JScrollBarЭлемент управления «Полоса прокрутки» представляет компонент полосы прокрутки, чтобы пользователь мог выбирать из диапазона значений. |
| 13 | JOptionPaneJOptionPane предоставляет набор стандартных диалоговых окон, которые запрашивают у пользователей значение или информируют их о чем-то. |
| 14 | JFileChooserЭлемент управления JFileChooser представляет диалоговое окно, из которого пользователь может выбрать файл. |
| 15 | JProgressBarПо мере продвижения задачи к завершению на индикаторе выполнения отображается процент выполнения задачи. |
| 16 | JSliderJSlider позволяет пользователю графически выбирать значение, перемещая ручку в ограниченном интервале. |
| 17 | JSpinnerJSpinner представляет собой однострочное поле ввода, которое позволяет пользователю выбрать число или значение объекта из упорядоченной последовательности. |
JLabel
Объект JLabel — это компонент для размещения текста в контейнере.
JButton
Этот класс создает помеченную кнопку.
JColorChooser
JColorChooser предоставляет панель управления, разработанную, чтобы позволить пользователю манипулировать и выбирать цвет.
JCheckBox
JCheckBox — это графический компонент, который может находиться во включенном (true) или выключенном (false) состоянии.
JRadioButton
Класс JRadioButton — это графический компонент, который может находиться либо во включенном (истинном), либо в выключенном (ложном) состоянии. в группе.
JList
Компонент JList предоставляет пользователю список прокручиваемых текстовых элементов.
JComboBox
Компонент JComboBox предоставляет пользователю выпадающий список элементов
JTextField
Объект JTextField — это текстовый компонент, который позволяет редактировать одну строку текста.
JPasswordField
Объект JPasswordField — это текстовый компонент, предназначенный для ввода пароля.
JTextArea
Объект JTextArea — это текстовый компонент, который позволяет редактировать несколько строк текста.
ImageIcon
Элемент управления ImageIcon — это реализация интерфейса Icon, который рисует значки из изображений
JScrollBar
Элемент управления «Полоса прокрутки» представляет компонент полосы прокрутки, чтобы пользователь мог выбирать из диапазона значений.
JOptionPane
JOptionPane предоставляет набор стандартных диалоговых окон, которые запрашивают у пользователей значение или информируют их о чем-то.
JFileChooser
Элемент управления JFileChooser представляет диалоговое окно, из которого пользователь может выбрать файл.
JProgressBar
По мере продвижения задачи к завершению на индикаторе выполнения отображается процент выполнения задачи.
JSlider
JSlider позволяет пользователю графически выбирать значение, перемещая ручку в ограниченном интервале.
JSpinner
JSpinner представляет собой однострочное поле ввода, которое позволяет пользователю выбрать число или значение объекта из упорядоченной последовательности.
Мы будем использовать некоторые из этих элементов управления в последующих примерах.