Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Библиотека Swing

Определение 1

Библиотека Swing — это библиотека, которая предназначена для формирования графического интерфейса на языке Java.

Введение

Графический интерфейс в Java характерен весьма тернистым путём развития и становления. В течение длительного времени он считался медленным, потребляющим много ресурсов системы и обладающим ограниченной функциональностью. Первой попыткой компании SUN (Stanford University Networks или просто Sun, то есть солнце) реализовать графический интерфейс для языка Java стала библиотека AWT (Abstract Window Toolkit), которая была инструментом для работы с разными оконными средами. Компания Sun создала прослойку на языке Java, способную вызывать методы из библиотек, которые написаны на Си.

Библиотечные методики AWT способны создавать и использовать графические элементы операционной среды. С одной точки зрения, это, наверное, хорошо, поскольку программа на Java становится похожей на другие программы в границах единой операционной системы. Но если запускать её на другой платформе, то могут появиться различия в размерах элементов и шрифтов, которые способны испортить внешний вид программы.

Для обеспечения возможности работы с разными платформами AWT интерфейсы, предназначенные для вызова элементов, подверглись унификации, вследствие которой их функциональный набор получился немного урезанным. Да и набор элементов тоже оказался не таким уж большим. К примеру, в AWT отсутствуют таблицы, а в кнопках нет поддержки отображения иконок. Однако пакет Java AWT всё-таки присутствует в Java с самой первой версии, и он может быть использован для формирования графических интерфейсов.

Следует отметить, что элементы AWT не осуществляют никаких действий. Это просто «Java-оболочка» для компонентов управления той операционной системы, под управлением которой они работают. Любой запрос к этим компонентам будет перенаправлен к операционной системе, которая и должна будет выполнить всю работу. Использованные ресурсные возможности AWT предпочитает освободить в автоматическом режиме. Но нужно заметить, что это может усложнить архитектуру, а также способно влиять на производительность.

«Библиотека Swing» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Библиотека Swing

После AWT компания Sun реализовала графическую библиотеку элементов Swing, которая полностью написана на Java. Для выполнения прорисовок применяется графика 2D, что предопределяет целую совокупность преимуществ. Набор стандартных элементов существенно больше, чем у AWT, с точки зрения разнообразия и функциональности. Swing предоставляет возможность лёгкого создания новых компонентов, путём наследования их от уже существующих, а также может поддерживать разные стили.

Проектировщики новой библиотеки пользовательского интерфейса Swing пошли по известному уже пути и в качестве базы для своей библиотеки взяли AWT. Естественно, они стали использовать конкретные тяжеловесные компоненты AWT, которые могут быть представлены классами Button, Label и аналогичными им. Необходимый уровень гибкости и управляемости способны обеспечить лишь легковесные компоненты. На диаграмме ниже, которая является диаграммой наследования, отображены связи между AWT и Swing:

Диаграмма. Автор24 — интернет-биржа студенческих работ

Рисунок 1. Диаграмма. Автор24 — интернет-биржа студенческих работ

Самым главным отличием Swing от AWT может считаться тот факт, что компоненты Swing не имеют никаких связей с операционной системой и по этой причине являются гораздо более стабильными и быстрыми. Подобные компоненты в языке Java именуются легковесными (lightweight), и основные принципы их работы во многом способны объяснить работу Swing.

Для того чтобы создать графический интерфейс приложения, следует использовать специальные элементы библиотеки Swing, именуемые контейнерами высшего уровня (top level containers). Они могут быть представлены как окна операционной системы, в которых размещены компоненты пользовательского интерфейса. К контейнерам высшего уровня следует отнести окна JFrame и JWindow, диалоговое окно JDialog, а также апплет JApplet (который не считается окном, однако тоже служит для вывода интерфейса в браузере, выполняющего запуск этого апплета). Контейнеры высшего уровня Swing являются тяжеловесными компонентами и выступают как исключение из общего правила. Все другие компоненты Swing могут считаться легковесными.

Ниже приведён пример формирования оконного интерфейса JFrame при помощи Swing:

import java.awt.Dimension;

import javax.swing.JFrame;

import javax.swing.JLabel;

public class JFrameTest

{

public static void createGUI()

{

JFrame frame = new JFrame("Test frame");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JLabel label = new JLabel("Test label");

frame.getContentPane().add(label);

frame.setPreferredSize(new Dimension(200, 100));

frame.pack();

frame.setVisible(true);

}

public static void main(String[] args)

{

JFrame.setDefaultLookAndFeelDecorated(true);

javax.swing.SwingUtilities.invokeLater(new Runnable() {

public void run() {

createGUI();

}

});

}

}

Конструктор JFrame(), не имеющий параметров, должен создать пустое окно. Конструктор JFrame(String title) должен создать пустое окно, имеющее заголовок title. Для создания простейшей программы с пустым окном следует применять следующие методы:

  • setSize(int width, int height) выполняет определение размеров окна.
  • setDefaultCloseOperation(int operation) осуществляет определение действий после завершения программы.
  • setVisible(boolean visible) является командой, которая делает окно видимым.

Если размеры окна не определены, то у него будет нулевая высота, вне зависимости от того, что в окне расположено. В определение размеров окна входит не только рабочая область, но и границы и строка заголовка.

Метод setDefaultCloseOperation должен определить действие, которое следует исполнить при выходе из программы. Для этого необходимо в качестве параметра operation переслать константу EXIT_ON_CLOSE, которая описана в классе JFrame.

По умолчанию окно формируется как невидимое. Для отображения его окно на экране выполняется метод setVisible с параметром true.

Дата написания статьи: 08.02.2022
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot