#23 - GUI Java (Swing JFrame)

#23 - GUI Java (Swing JFrame)

В уроке мы затронем очень большую тему, а именно GUI Java или интерфейс пользователя в языке Java. Мы научимся создавать полноценные формочки, а также изучим обработчики событий.

Видеоурок

Для создания графического интерфейса на Java существует несколько библиотек. Мы с вами рассмотрим библиотеку Swing, которая является одной из самых популярных библиотек и позволяет создавать полноценные оконные приложения на языке Java.


Создание приложения

Создание нового окна необходимо делать в отдельных файлах, а в основном классе лишь запускать нужное окно. Поэтому, изначально создайте файл и назовите его: SimpleGUI.


Для работы с библиотекой необходимо импортировать классы, что позволят не только создавать графический дизайн, но также отслеживать различные нажатия на кнопки и выполнять действия после нажатия.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

Чтобы работать со многими методами, наш основной класс должен наследовать всё от класса с названием JFrame.


После выполнения наследования мы можем иметь доступ к классам для создания полей, кнопок и прочих элементов. Существует множество специализированных классов, рассмотрим наиболее популярные из них:


  • JLabel - класс для создания объекта с надписью; 
  • JTextField - класс для создания текстового поля; 
  • JButton - класс для создания кнопки; 
  • JCheckBox - класс для создания кнопки-галочки;
  • JRadioButton - класс для создания кнопок выбора.



Разработка проекта

В Swing используются контейнеры «Container» для группировки нескольких элементов в одну форму. Перед созданием контейнера необходимо установить: название окна, его размеры и координаты (x, y, w, h), а также установили операцию при закрытии окна.


Далее создается объект на основе класса Container и прописывается метод getContentPane (). Данный метод возвращает контейнер верхнего уровня, в который помещаются все остальные объекты на окне.


Для размещения объектов стоит выбрать какой-либо слой. В уроке был использован слой GridLayout, что позволяет располагать объекты в формате сетки или же таблицы.


Добавление элементов

После создания контейнера и основного слоя, можно добавлять элементы. Все элементы создаются на основе классов, что были рассмотрены в самом начале: JLabel, JButton и так далее. Чтобы добавить элемент в контейнер используется метод add, а в качестве параметра выступает элемент, что добавляется.


Для создания выбора между radio кнопками необходимо объединить их в общую группу, таким образом переключаясь между ними они будут работать корректно.


Для отслеживания событий используется интерфейс «ActionListener». Создаем класс с реализацией интерфейса и выполняем обработку действий пользователя:

class ButtonEventListener implements ActionListener {
	public void actionPerformed (ActionEvent e) {

	}
}

Внутри метода «actionPerformed» (действие выполнено) прописывается любой код, что должен сработать по нажатию на кнопку. 


В программе что мы создавали мы прописали получение данных из полей формы и вывод данных в новом окне. Чтобы взять данные из поля необходимо использовать метод «getText» для нужного вам поля: input.getText().


Для создания всплывающего окна мы использовали класс «JOptionPane», в который поместили: объект, сообщение, название и тип диалогового окна.


Остается все это вызвать с основного класса. В основном классе мы создаем объект на основе класса, что мы создавали и вызываем метод для отображения окна с параметром true: app.setVisible(true).

Исходный код

Весь код будет доступен после подписки на проект!

Онлайн редактор кода

Загрузка...

Задание к уроку

Доступные элементы

Назовите все самые популярные и часто используемые элементы в Java Swing. Расскажите за что отвечает каждый из них.

Посмотреть ответ

Существует несколько часто востребованных кнопок и элементов:

  • JLabel - класс для создания объекта с надписью; 
  • JTextField - класс для создания текстового поля; 
  • JButton - класс для создания кнопки; 
  • JCheckBox - класс для создания кнопки-галочки;
  • JRadioButton - класс для создания кнопок выбора.

Получить остальные домашние задания можно после подписки на проект

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Также стоит посмотреть

Изучение таск-менеджера Gulp 4
5 уроков
Уроки Vue.js для начинающих
10 уроков
Курс по React JS для начинающих
14 уроков
Изучение библиотек jQuery
24 урока
Создание приложения на React JS / Использование API
7 уроков
Изучение React JS / Redux библиотеки
9 уроков
Комментарии для сайта Cackle