Java

Уроки Java для начинающих

24 урока 50 заданий Справочник Компилятор

#23 - GUI Java (Swing JFrame)

#23 - GUI Java (Swing JFrame)


Java

В этом уроке мы затронем очень большую тему, а именно 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, который помогает отображать элементы в виде таблицы с одинаковыми размерами ячеек.

Теперь можно добавлять элементы в сам контейнер. Добавляются они при помощи метода add, а в качестве параметра выступает элемент, который необходимо добавить.

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

Далее мы все это дополнительно помещаем в наш один общий контейнер. При этом к кнопке мы добавляем addActionListener и называем его как-угодно. В этом вложенном классе будет происходить действия при нажатии на кнопку, к которой как раз и добавлен addActionListener.

В классе мы прописываем стандартную структуру:
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 месяца!


Java

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