Файл: Реферат по теме Организация обработки событий в Swing.docx

ВУЗ: Не указан

Категория: Реферат

Дисциплина: Не указана

Добавлен: 23.11.2023

Просмотров: 19

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Факультет радиофизики и компьютерных технологий

Реферат по теме
«Организация обработки событий в Swing»


Выполнили студенты 2 курса

Евдокимов Андрей Николаевич

Группа № 4

Преподаватель:

Дигрис Анатолий Владимирович



План:


    • Введение

  • 1 Библиотека Swing

  • 2 Работа в Swing/контекстное меню

  • 3 Главное меню

  • 4 Обработка событий

  • 5 Look and Feel

  • 6 Сравнение с АWT

  • 7 Литература

Введение


Пример Swing-интерфейса для X Window System.

Swing — библиотека для создания графического интерфейса на языке Java. Swing был разработан компанией Sun Microsystems. Он содержит ряд графических компонентов (англ. Swingwidgets), таких как кнопки, поля ввода, таблицы и т. д.

Swing относится к библиотеке классов JFC, которая представляет собой набор библиотек для разработки графических оболочек. К этим библиотекам относятся Java 2D, Accessibility-API, Drag & Drop-API и AWT.

Swing предоставляет более гибкие интерфейсные компоненты, чем более ранняя библиотека AWT. В отличие от AWT, компоненты Swing разработаны для одинаковой кросс-платформенной работы, в то время как компоненты AWT повторяют интерфейс исполняемой платформы без изменений. Компоненты Swing поддерживают специфические динамически подключаемые виды и поведения (англ. plugablelook-and-feel), благодаря которому возможна адаптация к графическому интерфейсу платформы (то есть к компоненту можно динамически подключить другой, специфический для операционной системы, в том числе и созданный программистом вид и поведение). Таким образом, приложения, использующие Swing, могут выглядеть как родные приложения для данной операционной системы. Основным минусом таких «легковесных» (англ. Lightweight) компонентов является относительно медленная работа. Положительная сторона — универсальность интерфейса созданных приложений на всех платформах.

















Библиотека Swing


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

Каждый из современных языков программирования предоставляет множество библиотек для работы со стандартным набором элементов управления. Напомним, что под библиотекой в программировании набор готовых классов и интерфейсов, предназначенных для решения определенного круга задач.

В Java есть три библиотеки визуальных компонентов для создания графического интерфейса пользователя. Самая ранняя из них называется AWT. Считается, что при ее проектировании был допущен ряд недочетов, вследствие которых с ней довольно сложно работать. Библиотека Swing разработана на базе AWT и заменяет большинство ее компонентов своими, спроектированными более тщательно и удобно. Третья, самая новая библиотека, называется SWT.

Каждая библиотека предоставляет набор классов для работы с кнопками, списками, окнами, меню и т.д., но эти классы спроектированы по-разному: они имеют различный набор методов с разными параметрами, поэтому «перевести» программу с одной библиотеки на другую (например, с целью увеличения быстродействия) не так-то просто. Это почти как перейти с одного языка программирования на другой: все языки умеют делать одно и то же, но у каждого из них свой синтаксис, своя программная структура и свои многочисленные хитрости.

По этой причине вместо того, чтобы делать обзор всех трех библиотек, мы постараемся получше разобраться в одной из них — библиотеке Swing. Полноценный графический интерфейс может быть разработан с ее помощью.

Работа в Swing

Неотъемлемой частью современных оконных программ является меню, представляющее собой удобно сгруппированный набор команд. Меню бывает двух типов: главное и контекстное. Главное меню располагается вдоль верхней границы окна и содержит команды, относящиеся ко всему приложению (точнее, все команды, которые можно выполнить, работая с данным окном). Контекстное меню вызывается нажатием правой кнопки мышки на конкретном объекте и содержит команды, которые могут быть применены именно к этому объекту.

Контекстное меню



Контекстное (всплывающее) меню реализовано в классе JPopupMenu’’, очень похожему на класс ‘’JMenu’’. Отличительным методом этого класса является метод show(Component comp, int x, int y)’’, отображающий меню в точке с заданными координатами относительно границ заданного компонента.
Контекстное меню отображается при щелчке пкм (правой клваишой мыши) над компонентом, таким образом, чтобы отобразить меню, требуется добавить к этому компоненту слушателя мыши.


Рассмотрим пример, в котором к уже созданному нами окну добавляется метка с надписью и контекстное меню из двух элементов, связанное с этой меткой. Необходимо добавить в конструктор перед последней командой ‘’setSize’’ следующий код:





При этом в определении класса окна следует ввести два поля:

JPopupMenu popup;JLabel label; Это необходимо для того, чтобы анонимный класс-слушатель мог обратиться к метке и к контекстному меню.

Главное меню

При организации меню на Java Swing используется не только класс JMenuBar, но и JMenu и JMenuItem. Скорее даже JMenuBar практически не используется — основная работа при конструировании меню происходит с JMenu и JMenuItem. Кстати все эти классы располагаются в пакете javax.swing.* В самом простом случае мы создаем экземпляр JMenuBar, добавляем к нему необходимый набор JMenu и JMenuItem (иногда, обычно только JMenu), а затем говорим JFrame использовать в качестве главного меню наше свежеиспеченое при помощи метода setJMenuBar.

 JMenuItem — это пункт меню, который представляет собой уже конкретную команду меню

JMenu — это меню, которое содержит внутри себя JMenuItem или вложенные меню JMenu


 Главное меню JMenuBar, как правило располагается в верхней части окна приложения в виде горизонтальной полоски. Главное меню окна представлено в Swing классом ‘’JMenuBar’’. По сути своей этот класс представляет собой панель с менеджером расположения ‘’BoxLayout ‘’, в которую можно добавлять что угодно: хоть выпадающие списки, хоть панели с закладками. Однако для удобства пользования программой предпочтительнее использовать обыденные возможности меню.

Оно должно быть присоединено к окну методом setJMenuBar(JMenuBar menuBar)

Обработка событий

Начнем с того что такое обработка событий? Обработка событий - это механизм, который управляет событием и решает, что должно произойти, если событие произойдет. Этот механизм имеет код, известный как обработчик событий, который выполняется при возникновении события.

Java использует модель событий делегирования для обработки событий. Эта модель определяет стандартный механизм для генерации и обработки событий.

Модель делегирования событий включает следующих ключевых участников.

Источник − Источник - это объект, на котором происходит событие. Источник отвечает за предоставление информации о произошедшем событии его обработчику. Java предоставляет нам классы для исходного объекта.

Прослушиватель − он также известен как обработчик событий. Слушатель отвечает за генерацию ответа на событие. С точки зрения реализации Java, слушатель также является объектом. Слушатель ждет, пока он не получит событие. Как только событие получено, прослушиватель обрабатывает событие и затем возвращает его.

Преимущество такого подхода заключается в том, что логика пользовательского интерфейса полностью отделена от логики, генерирующей событие. Элемент пользовательского интерфейса способен делегировать обработку события отдельному фрагменту кода.

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


Таким образом, при разработке программы необходимо:

  1. Выявить события, в ответ на которые потребуется реакция программы.

  2. Написать код, реализующий эту реакцию (так называемый обработчик событий).

  3. Связать обработчик события с соответствующим событием.


Look and Feel


Архитектура Swing разработана таким образом, что вы можете изменять «look and feel» (L&F) вашего приложения. «Look» определяет внешний вид компонентов, а «Feel» — их поведение. Sun’s JRE предоставляет следующие L&F[1]:

  • CrossPlatformLookAndFeel — это родной L&F для Java-приложений (так же называется Metal). Он используется по умолчанию, обеспечивая стандартное поведение компонентов и их внешний вид, вне зависимости от платформы, на которой запускается приложение.

  • SystemLookAndFeel — в этом случае приложение использует L&F, который является родным для системы, на которой запущено приложение. Системный L&F определяется во время выполнения. Для Windows используется «Windows» L&F, который имитирует особенности конкретной системы, на которой запущен — классический Windows, XP, или Vista. Для Linux и Solaris используется «GTK+», если установлен GTK+ 2.2 или более поздняя версия, в противном случае используется «Motif».

  • Synth — основа для создания собственных L&F.

  • Multiplexing — предоставляет возможность использования различных L&F одновременно.


Сравнение с AWT

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

Литература

Java Swing: Эффектные пользовательские интерфейсы - Издание второе (2011)

Java 2. Библиотека профессионала. Том 1. Основы.

Минск, 2022