SWING — Обзор
Swing API — это набор расширяемых компонентов графического интерфейса, облегчающий жизнь разработчика для создания приложений на основе JAVA Front End / GUI. Он построен на основе API-интерфейса AWT и выступает в качестве замены API-интерфейса AWT, поскольку имеет почти все элементы управления, соответствующие элементам управления AWT. Компонент Swing следует архитектуре Model-View-Controller для выполнения следующих критериев.
-
Одного API должно быть достаточно для поддержки множественного внешнего вида.
-
API должен быть ориентирован на модель, чтобы не требовалось, чтобы у API самого высокого уровня были данные.
-
API заключается в использовании модели Java Bean, чтобы инструменты Builder и IDE могли предоставлять разработчикам более качественные сервисы для использования.
Одного API должно быть достаточно для поддержки множественного внешнего вида.
API должен быть ориентирован на модель, чтобы не требовалось, чтобы у API самого высокого уровня были данные.
API заключается в использовании модели Java Bean, чтобы инструменты Builder и IDE могли предоставлять разработчикам более качественные сервисы для использования.
Архитектура MVC
Архитектура Swing API следует свободно основанной архитектуре MVC следующим образом.
-
Модель представляет данные компонента.
-
Представление представляет собой визуальное представление данных компонента.
-
Контроллер принимает входные данные от пользователя в представлении и отражает изменения в данных компонента.
-
Компонент Swing имеет модель в качестве отдельного элемента, в то время как части View и Controller объединены в элементах пользовательского интерфейса. Из-за этого Swing имеет подключаемую архитектуру внешнего вида.
Модель представляет данные компонента.
Представление представляет собой визуальное представление данных компонента.
Контроллер принимает входные данные от пользователя в представлении и отражает изменения в данных компонента.
Компонент Swing имеет модель в качестве отдельного элемента, в то время как части View и Controller объединены в элементах пользовательского интерфейса. Из-за этого Swing имеет подключаемую архитектуру внешнего вида.
Особенности Swing
-
Легкий вес — компоненты Swing не зависят от API собственной операционной системы, так как элементы управления Swing API отображаются в основном с использованием чистого кода JAVA, а не вызовов базовой операционной системы.
-
Богатые элементы управления — Swing предоставляет богатый набор расширенных элементов управления, таких как Tree, TabbedPane, слайдер, палитра цветов и элементы управления таблицами.
-
Широкие возможности настройки — элементы управления Swing можно легко настроить, поскольку внешний вид не зависит от внутреннего представления.
-
Сменный внешний вид — графический интерфейс на основе SWING Внешний вид приложения может изменяться во время выполнения в зависимости от доступных значений.
Легкий вес — компоненты Swing не зависят от API собственной операционной системы, так как элементы управления Swing API отображаются в основном с использованием чистого кода JAVA, а не вызовов базовой операционной системы.
Богатые элементы управления — Swing предоставляет богатый набор расширенных элементов управления, таких как Tree, TabbedPane, слайдер, палитра цветов и элементы управления таблицами.
Широкие возможности настройки — элементы управления Swing можно легко настроить, поскольку внешний вид не зависит от внутреннего представления.
Сменный внешний вид — графический интерфейс на основе SWING Внешний вид приложения может изменяться во время выполнения в зависимости от доступных значений.
SWING — Настройка среды
В этом разделе рассказывается, как загрузить и настроить Java на вашем компьютере. Пожалуйста, используйте следующие шаги для настройки среды.
Java SE находится в свободном доступе по ссылке Скачать Java . Следовательно, вы можете скачать версию, основанную на вашей операционной системе.
Следуйте инструкциям для загрузки Java и запуска .exe для установки Java на вашем компьютере. После того, как вы установили Java на свой компьютер, вам нужно будет установить переменные среды, чтобы они указывали на правильные каталоги установки.
Настройка пути для Windows 2000 / XP
Предполагая, что вы установили Java в каталог c: \ Program Files \ java \ jdk —
Шаг 1 — Щелкните правой кнопкой мыши «Мой компьютер» и выберите «Свойства».
Шаг 2 — Нажмите кнопку «Переменные среды» на вкладке «Дополнительно».
Шаг 3 — Измените переменную Path, чтобы она также содержала путь к исполняемому файлу Java. Например, если в настоящий момент путь задан как «C: \ WINDOWS \ SYSTEM32» , измените ваш путь на «C: \ WINDOWS \ SYSTEM32; c: \ Program Files \ java \ jdk \ bin» .
Настройка пути для Windows 95/98 / ME
Предполагая, что вы установили Java в каталог c: \ Program Files \ java \ jdk —
Шаг 1 — Отредактируйте файл «C: \ autoexec.bat» и добавьте в конце следующую строку: «SET PATH =% PATH%; C: \ Program Files \ java \ jdk \ bin» .
Настройка пути для Linux, UNIX, Solaris, FreeBSD
Переменная среды PATH должна указывать на то, где установлены двоичные файлы Java. Обратитесь к документации Shell, если у вас возникли проблемы с этим.
Например, если вы используете bash в качестве оболочки, вы должны добавить следующую строку в конец ‘.bashrc: export PATH = / path / to / java: $ PATH’ .
Популярные редакторы Java
Для написания ваших программ на Java вам понадобится текстовый редактор. На рынке доступны еще более сложные IDE. Но сейчас вы можете рассмотреть один из следующих —
-
Блокнот — на компьютере с Windows вы можете использовать любой простой текстовый редактор, например Блокнот (рекомендуется для этого урока), TextPad.
-
Netbeans — Netbeans — это Java IDE с открытым исходным кодом, который можно бесплатно загрузить по адресу https://www.netbeans.org/index.html .
-
Eclipse — Eclipse также является Java IDE, разработанной сообществом открытого исходного кода Eclipse и может быть загружена с https://www.eclipse.org/ .
Блокнот — на компьютере с Windows вы можете использовать любой простой текстовый редактор, например Блокнот (рекомендуется для этого урока), TextPad.
Netbeans — Netbeans — это Java IDE с открытым исходным кодом, который можно бесплатно загрузить по адресу https://www.netbeans.org/index.html .
Eclipse — Eclipse также является Java IDE, разработанной сообществом открытого исходного кода Eclipse и может быть загружена с https://www.eclipse.org/ .
SWING — Управление
Каждый пользовательский интерфейс рассматривает следующие три основных аспекта:
-
Элементы пользовательского интерфейса — это основные визуальные элементы, с которыми пользователь в конечном итоге видит и взаимодействует. GWT предоставляет огромный список широко используемых и распространенных элементов от базовых до сложных, которые мы рассмотрим в этом руководстве.
-
Макеты — они определяют, как элементы пользовательского интерфейса должны быть организованы на экране, и обеспечивают окончательный внешний вид графического интерфейса пользователя. Эта часть будет рассмотрена в главе «Макет».
-
Поведение — это события, которые происходят, когда пользователь взаимодействует с элементами пользовательского интерфейса. Эта часть будет рассмотрена в главе «Обработка событий».
Элементы пользовательского интерфейса — это основные визуальные элементы, с которыми пользователь в конечном итоге видит и взаимодействует. GWT предоставляет огромный список широко используемых и распространенных элементов от базовых до сложных, которые мы рассмотрим в этом руководстве.
Макеты — они определяют, как элементы пользовательского интерфейса должны быть организованы на экране, и обеспечивают окончательный внешний вид графического интерфейса пользователя. Эта часть будет рассмотрена в главе «Макет».
Поведение — это события, которые происходят, когда пользователь взаимодействует с элементами пользовательского интерфейса. Эта часть будет рассмотрена в главе «Обработка событий».
Каждый элемент управления SWING наследует свойства из следующего класса компонентов hiearchy.
S.No. | Класс и описание |
---|---|
1 | Составная часть
Компонент — это абстрактный базовый класс для элементов управления SWING без пользовательского интерфейса. Компонент представляет объект с графическим представлением |
2 | Контейнер
Контейнер — это компонент, который может содержать другие компоненты SWING. |
3 | JComponent
JComponent — это базовый класс для всех компонентов пользовательского интерфейса SWING. Чтобы использовать компонент SWING, который наследуется от JComponent, этот компонент должен находиться в иерархии содержимого, корнем которой является контейнер SWING верхнего уровня. |
Компонент — это абстрактный базовый класс для элементов управления SWING без пользовательского интерфейса. Компонент представляет объект с графическим представлением
Контейнер — это компонент, который может содержать другие компоненты SWING.
JComponent — это базовый класс для всех компонентов пользовательского интерфейса SWING. Чтобы использовать компонент SWING, который наследуется от JComponent, этот компонент должен находиться в иерархии содержимого, корнем которой является контейнер SWING верхнего уровня.
Элементы пользовательского интерфейса SWING
Ниже приведен список наиболее часто используемых элементов управления при разработке графического интерфейса с использованием SWING.
S.No. | Класс и описание |
---|---|
1 | JLabel
Объект JLabel — это компонент для размещения текста в контейнере. |
2 | JButton
Этот класс создает помеченную кнопку. |
3 | JColorChooser
JColorChooser предоставляет панель управления, разработанную, чтобы позволить пользователю манипулировать и выбирать цвет. |
4 | JCheck Box
JCheckBox — это графический компонент, который может находиться во включенном (true) или выключенном (false) состоянии. |
5 | JRadioButton
Класс JRadioButton представляет собой графический компонент, который может находиться в состоянии «включено» (true) или « выключено» (false). в группе. |
6 | JList
Компонент JList предоставляет пользователю список прокручиваемых текстовых элементов. |
7 | JComboBox
Компонент JComboBox предоставляет пользователю доступ к меню выбора. |
8 | JTextField
Объект JTextField — это текстовый компонент, который позволяет редактировать одну строку текста. |
9 | JPasswordField
Объект JPasswordField — это текстовый компонент, предназначенный для ввода пароля. |
10 | JTextArea
Объект JTextArea — это текстовый компонент, который позволяет редактировать несколько строк текста. |
11 | ImageIcon
Элемент управления ImageIcon — это реализация интерфейса Icon, который рисует значки из изображений |
12 | JScrollBar
Элемент управления «Полоса прокрутки» представляет компонент полосы прокрутки, чтобы пользователь мог выбирать из диапазона значений. |
13 | JOptionPane
JOptionPane предоставляет набор стандартных диалоговых окон, которые запрашивают у пользователей значение или информируют их о чем-то. |
14 | JFileChooser
Элемент управления JFileChooser представляет диалоговое окно, из которого пользователь может выбрать файл. |
15 | JProgressBar
По мере продвижения задачи к завершению на индикаторе выполнения отображается процент выполнения задачи. |
16 | JSlider
JSlider позволяет пользователю графически выбирать значение, перемещая ручку в ограниченном интервале. |
17 | JSpinner
JSpinner представляет собой однострочное поле ввода, которое позволяет пользователю выбрать число или значение объекта из упорядоченной последовательности. |
Объект JLabel — это компонент для размещения текста в контейнере.
Этот класс создает помеченную кнопку.
JColorChooser предоставляет панель управления, разработанную, чтобы позволить пользователю манипулировать и выбирать цвет.
JCheckBox — это графический компонент, который может находиться во включенном (true) или выключенном (false) состоянии.
Класс JRadioButton представляет собой графический компонент, который может находиться в состоянии «включено» (true) или « выключено» (false). в группе.
Компонент JList предоставляет пользователю список прокручиваемых текстовых элементов.
Компонент JComboBox предоставляет пользователю доступ к меню выбора.
Объект JTextField — это текстовый компонент, который позволяет редактировать одну строку текста.
Объект JPasswordField — это текстовый компонент, предназначенный для ввода пароля.
Объект JTextArea — это текстовый компонент, который позволяет редактировать несколько строк текста.
Элемент управления ImageIcon — это реализация интерфейса Icon, который рисует значки из изображений
Элемент управления «Полоса прокрутки» представляет компонент полосы прокрутки, чтобы пользователь мог выбирать из диапазона значений.
JOptionPane предоставляет набор стандартных диалоговых окон, которые запрашивают у пользователей значение или информируют их о чем-то.
Элемент управления JFileChooser представляет диалоговое окно, из которого пользователь может выбрать файл.
По мере продвижения задачи к завершению на индикаторе выполнения отображается процент выполнения задачи.
JSlider позволяет пользователю графически выбирать значение, перемещая ручку в ограниченном интервале.
JSpinner представляет собой однострочное поле ввода, которое позволяет пользователю выбрать число или значение объекта из упорядоченной последовательности.
SWING — обработка событий
В этой главе вы узнаете о событиях, их типах, а также узнаете, как обрабатывать события. Пример приведен в конце главы для лучшего понимания.
Что такое событие?
Изменение состояния объекта известно как событие , т. Е. Событие описывает изменение состояния источника. События генерируются в результате взаимодействия пользователя с компонентами графического интерфейса пользователя. Например, нажатие кнопки, перемещение мыши, ввод символа с клавиатуры, выбор элемента из списка и прокрутка страницы — действия, которые вызывают событие.
Типы событий
События могут быть широко разделены на две категории —
-
События переднего плана — эти события требуют непосредственного взаимодействия с пользователем. Они создаются как последствия взаимодействия человека с графическими компонентами в графическом интерфейсе пользователя. Например, нажатие кнопки, перемещение мыши, ввод символа с клавиатуры, выбор элемента из списка, прокрутка страницы и т. Д.
-
Фоновые события — эти события требуют взаимодействия конечного пользователя. Прерывания операционной системы, аппаратный или программный сбой, истечение таймера и завершение работы — вот некоторые примеры фоновых событий.
События переднего плана — эти события требуют непосредственного взаимодействия с пользователем. Они создаются как последствия взаимодействия человека с графическими компонентами в графическом интерфейсе пользователя. Например, нажатие кнопки, перемещение мыши, ввод символа с клавиатуры, выбор элемента из списка, прокрутка страницы и т. Д.
Фоновые события — эти события требуют взаимодействия конечного пользователя. Прерывания операционной системы, аппаратный или программный сбой, истечение таймера и завершение работы — вот некоторые примеры фоновых событий.
Что такое обработка событий?
Обработка событий — это механизм, который контролирует событие и решает, что должно произойти в случае возникновения события. Этот механизм имеет код, который известен как обработчик событий, который выполняется, когда происходит событие.
Java использует модель событий делегирования для обработки событий. Эта модель определяет стандартный механизм для генерации и обработки событий.
Модель делегирования событий включает в себя следующих ключевых участников.
-
Источник — Источник — это объект, на котором происходит событие. Источник отвечает за предоставление информации о произошедшем событии своему обработчику. Java предоставляет нам классы для исходного объекта.
-
Слушатель — Он также известен как обработчик событий. Слушатель отвечает за генерацию ответа на событие. С точки зрения реализации Java слушатель также является объектом. Слушатель ждет, пока не получит событие. Как только событие получено, слушатель обрабатывает событие и затем возвращается.
Источник — Источник — это объект, на котором происходит событие. Источник отвечает за предоставление информации о произошедшем событии своему обработчику. Java предоставляет нам классы для исходного объекта.
Слушатель — Он также известен как обработчик событий. Слушатель отвечает за генерацию ответа на событие. С точки зрения реализации Java слушатель также является объектом. Слушатель ждет, пока не получит событие. Как только событие получено, слушатель обрабатывает событие и затем возвращается.
Преимущество этого подхода состоит в том, что логика пользовательского интерфейса полностью отделена от логики, которая генерирует событие. Элемент пользовательского интерфейса может делегировать обработку события отдельному куску кода.
В этой модели слушатель должен быть зарегистрирован в исходном объекте, чтобы слушатель мог получить уведомление о событии. Это эффективный способ обработки события, поскольку уведомления о событиях отправляются только тем слушателям, которые хотят их получить.
Шаги, вовлеченные в обработку событий
Шаг 1 — Пользователь нажимает кнопку, и событие генерируется.
Шаг 2 — Объект соответствующего класса событий создается автоматически, и информация об источнике и событии заполняется одним и тем же объектом.
Шаг 3 — Объект события перенаправляется в метод зарегистрированного класса слушателя.
Шаг 4 — Метод выполняется и возвращается.
Что нужно помнить о слушателе
-
Чтобы спроектировать класс слушателя, вы должны разработать несколько интерфейсов слушателя. Эти интерфейсы Listener прогнозируют некоторые публичные абстрактные методы обратного вызова, которые должны быть реализованы классом listener.
-
Если вы не реализуете ни один из предопределенных интерфейсов, то ваш класс не может выступать в качестве класса слушателя для исходного объекта.
Чтобы спроектировать класс слушателя, вы должны разработать несколько интерфейсов слушателя. Эти интерфейсы Listener прогнозируют некоторые публичные абстрактные методы обратного вызова, которые должны быть реализованы классом listener.
Если вы не реализуете ни один из предопределенных интерфейсов, то ваш класс не может выступать в качестве класса слушателя для исходного объекта.
Методы обратного вызова
Это методы, предоставляемые провайдером API и определяемые программистом приложения и вызываемые разработчиком приложения. Здесь методы обратного вызова представляют метод события. В ответ на событие java jre запустит метод обратного вызова. Все такие методы обратного вызова предоставляются в интерфейсах слушателей.
Если компонент хочет, чтобы какой-либо слушатель прослушивал его события, источник должен зарегистрировать себя для слушателя.
Пример обработки событий
Создайте следующую Java-программу, используя любой редактор по вашему выбору, скажем, D: /> SWING> com> tutorialspoint> gui>
SwingControlDemo.java
package com.tutorialspoint.gui; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class SwingControlDemo { private JFrame mainFrame; private JLabel headerLabel; private JLabel statusLabel; private JPanel controlPanel; public SwingControlDemo(){ prepareGUI(); } public static void main(String[] args){ SwingControlDemo swingControlDemo = new SwingControlDemo(); swingControlDemo.showEventDemo(); } private void prepareGUI(){ mainFrame = new JFrame("Java SWING Examples"); mainFrame.setSize(400,400); mainFrame.setLayout(new GridLayout(3, 1)); headerLabel = new JLabel("",JLabel.CENTER ); statusLabel = new JLabel("",JLabel.CENTER); statusLabel.setSize(350,100); mainFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent){ System.exit(0); } }); controlPanel = new JPanel(); controlPanel.setLayout(new FlowLayout()); mainFrame.add(headerLabel); mainFrame.add(controlPanel); mainFrame.add(statusLabel); mainFrame.setVisible(true); } private void showEventDemo(){ headerLabel.setText("Control in action: Button"); JButton okButton = new JButton("OK"); JButton submitButton = new JButton("Submit"); JButton cancelButton = new JButton("Cancel"); okButton.setActionCommand("OK"); submitButton.setActionCommand("Submit"); cancelButton.setActionCommand("Cancel"); okButton.addActionListener(new ButtonClickListener()); submitButton.addActionListener(new ButtonClickListener()); cancelButton.addActionListener(new ButtonClickListener()); controlPanel.add(okButton); controlPanel.add(submitButton); controlPanel.add(cancelButton); mainFrame.setVisible(true); } private class ButtonClickListener implements ActionListener{ public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if( command.equals( "OK" )) { statusLabel.setText("Ok Button clicked."); } else if( command.equals( "Submit" ) ) { statusLabel.setText("Submit Button clicked."); } else { statusLabel.setText("Cancel Button clicked."); } } } }
Скомпилируйте программу, используя командную строку. Перейдите к D: /> SWING и введите следующую команду.
D:\AWT>javac com\tutorialspoint\gui\SwingControlDemo.java
Если ошибки не возникает, это означает, что компиляция прошла успешно. Запустите программу, используя следующую команду.
D:\AWT>java com.tutorialspoint.gui.SwingControlDemo
Проверьте следующий вывод.
SWING — Классы событий
Классы событий представляют событие. Java предоставляет различные классы событий, однако, будут обсуждаться только те, которые используются чаще.
Класс EventObject
Это корневой класс, из которого должны быть получены все объекты состояния события. Все события построены со ссылкой на объект, источник , который логически считается объектом, с которым первоначально произошло рассматриваемое событие. Этот класс определен в пакете java.util .
Декларация класса
Ниже приводится объявление для класса java.util.EventObject.
public class EventObject extends Object implements Serializable
поле
Ниже приведены поля для класса java.util.EventObject.
Защищенный источник объекта — объект, на котором изначально произошло событие.
Конструкторы классов
Sr.No. | Конструктор и описание |
---|---|
1 |
EventObject (Источник объекта) Создает прототип события. |
EventObject (Источник объекта)
Создает прототип события.
Методы класса
Sr.No. | Метод и описание |
---|---|
1 |
Объект getSource () Объект, на котором изначально произошло Событие. |
2 |
Строка toString () Возвращает строковое представление этого EventObject. |
Объект getSource ()
Объект, на котором изначально произошло Событие.
Строка toString ()
Возвращает строковое представление этого EventObject.
Унаследованные методы
Этот класс наследует методы из следующего класса —
- java.lang.Object
Классы событий SWING
Ниже приведен список наиболее часто используемых классов событий.
Sr.No. | Класс и описание |
---|---|
1 | AWTEvent
Это корневой класс событий для всех событий SWING. Этот класс и его подклассы заменяют исходный класс java.awt.Event . |
2 | ActionEvent
Событие ActionEvent генерируется при нажатии кнопки или двойном щелчке элемента списка. |
3 | InputEvent
Класс InputEvent является корневым классом событий для всех входных событий уровня компонента. |
4 | KeyEvent
При вводе символа генерируется ключевое событие. |
5 | MouseEvent
Это событие указывает, что действие мыши произошло в компоненте. |
6 | WindowEvent
Объект этого класса представляет изменение состояния окна. |
7 | AdjustmentEvent
Объект этого класса представляет событие корректировки, испускаемое регулируемыми объектами. |
8 | ComponentEvent
Объект этого класса представляет изменение состояния окна. |
9 | ContainerEvent
Объект этого класса представляет изменение состояния окна. |
10 | MouseMotionEvent
Объект этого класса представляет изменение состояния окна. |
11 | PaintEvent
Объект этого класса представляет изменение состояния окна. |
Это корневой класс событий для всех событий SWING. Этот класс и его подклассы заменяют исходный класс java.awt.Event .
Событие ActionEvent генерируется при нажатии кнопки или двойном щелчке элемента списка.
Класс InputEvent является корневым классом событий для всех входных событий уровня компонента.
При вводе символа генерируется ключевое событие.
Это событие указывает, что действие мыши произошло в компоненте.
Объект этого класса представляет изменение состояния окна.
Объект этого класса представляет событие корректировки, испускаемое регулируемыми объектами.
Объект этого класса представляет изменение состояния окна.
Объект этого класса представляет изменение состояния окна.
Объект этого класса представляет изменение состояния окна.
Объект этого класса представляет изменение состояния окна.
SWING — слушатели событий
Слушатели событий представляют интерфейсы, отвечающие за обработку событий. Java предоставляет различные классы прослушивателей событий, однако будут обсуждаться только те, которые используются чаще. Каждый метод метода прослушивателя событий имеет единственный аргумент в качестве объекта, который является подклассом класса EventObject. Например, методы прослушивателя событий мыши будут принимать экземпляр MouseEvent, где MouseEvent является производным от EventObject.
Интерфейс EventListner
Это интерфейс маркера, который должен расширять каждый интерфейс слушателя. Этот класс определен в пакете java.util .
Декларация класса
Ниже приводится объявление для интерфейса java.util.EventListener.
public interface EventListener
Интерфейсы прослушивания событий SWING
Ниже приведен список часто используемых слушателей событий.
Sr.No. | Класс и описание |
---|---|
1 | ActionListener
Этот интерфейс используется для получения событий действия. |
2 | ComponentListener
Этот интерфейс используется для получения событий компонента. |
3 | ItemListener
Этот интерфейс используется для получения событий элемента. |
4 | KeyListener
Этот интерфейс используется для получения ключевых событий. |
5 | MouseListener
Этот интерфейс используется для получения событий мыши. |
6 | WindowListener
Этот интерфейс используется для получения событий окна. |
7 | AdjustmentListener
Этот интерфейс используется для получения событий корректировки. |
8 | ContainerListener
Этот интерфейс используется для получения событий контейнера. |
9 | MouseMotionListener
Этот интерфейс используется для получения событий движения мыши. |
10 | FocusListener
Этот интерфейс используется для получения событий фокуса. |
Этот интерфейс используется для получения событий действия.
Этот интерфейс используется для получения событий компонента.
Этот интерфейс используется для получения событий элемента.
Этот интерфейс используется для получения ключевых событий.
Этот интерфейс используется для получения событий мыши.
Этот интерфейс используется для получения событий окна.
Этот интерфейс используется для получения событий корректировки.
Этот интерфейс используется для получения событий контейнера.
Этот интерфейс используется для получения событий движения мыши.
Этот интерфейс используется для получения событий фокуса.
SWING — Адаптеры событий
Адаптеры — это абстрактные классы для получения различных событий. Методы в этих классах пусты. Эти классы существуют как удобство для создания объектов слушателя.
Адаптеры SWING
Ниже приведен список часто используемых адаптеров при прослушивании событий графического интерфейса в SWING.
Sr.No. | Адаптер и описание |
---|---|
1 | FocusAdapter
Абстрактный класс адаптера для получения событий фокуса. |
2 | KeyAdapter
Абстрактный класс адаптера для получения ключевых событий. |
3 | MouseAdapter
Абстрактный класс адаптера для получения событий мыши. |
4 | MouseMotionAdapter
Абстрактный класс адаптера для получения событий движения мыши. |
5 | WindowAdapter
Абстрактный класс адаптера для получения событий окна. |
Абстрактный класс адаптера для получения событий фокуса.
Абстрактный класс адаптера для получения ключевых событий.
Абстрактный класс адаптера для получения событий мыши.
Абстрактный класс адаптера для получения событий движения мыши.
Абстрактный класс адаптера для получения событий окна.
SWING — макеты
Макет относится к расположению компонентов внутри контейнера. Другими словами, можно сказать, что компоновка размещает компоненты в определенной позиции внутри контейнера. Задача размещения элементов управления выполняется автоматически менеджером макетов.
Менеджер по расположению
Менеджер по расположению автоматически размещает все компоненты в контейнере. Даже если вы не используете менеджер макетов, компоненты по-прежнему располагаются менеджером по умолчанию. Можно расположить элементы управления вручную, однако это становится очень трудным из-за следующих двух причин.
-
Очень утомительно обрабатывать большое количество элементов управления внутри контейнера.
-
Обычно информация о ширине и высоте компонента не указывается, когда нам нужно расположить их.
Очень утомительно обрабатывать большое количество элементов управления внутри контейнера.
Обычно информация о ширине и высоте компонента не указывается, когда нам нужно расположить их.
Java предоставляет различные менеджеры по расположению, чтобы расположить элементы управления. Свойства, такие как размер, форма и расположение, варьируются от одного менеджера макета к другому. Когда размер апплета или окна приложения изменяется, размер, форма и расположение компонентов также изменяются в ответ, то есть менеджеры компоновки адаптируются к измерениям окна просмотра апплета или окна приложения.
Диспетчер компоновки связан с каждым объектом-контейнером. Каждый менеджер компоновки является объектом класса, который реализует интерфейс LayoutManager.
Ниже приведены интерфейсы, определяющие функции менеджеров по расположению.
Sr.No. | Интерфейс и описание |
---|---|
1 | LayoutManager
Интерфейс LayoutManager объявляет те методы, которые должны быть реализованы классом, чей объект будет действовать как менеджер макета. |
2 | LayoutManager2
LayoutManager2 является подчиненным интерфейсом LayoutManager. Этот интерфейс предназначен для тех классов, которые знают, как макетировать контейнеры на основе объекта ограничения макета. |
Интерфейс LayoutManager объявляет те методы, которые должны быть реализованы классом, чей объект будет действовать как менеджер макета.
LayoutManager2 является подчиненным интерфейсом LayoutManager. Этот интерфейс предназначен для тех классов, которые знают, как макетировать контейнеры на основе объекта ограничения макета.
AWT Layout Manager Classes
Ниже приведен список наиболее часто используемых элементов управления при разработке графического интерфейса с использованием AWT.
Sr.No. | LayoutManager & Description |
---|---|
1 | BorderLayout
Граничная планировка размещает компоненты в пяти областях: восток, запад, север, юг и центр. |
2 | CardLayout
Объект CardLayout рассматривает каждый компонент в контейнере как карту. Только одна карта видна одновременно. |
3 | FlowLayout
FlowLayout является макетом по умолчанию. Это расположение компонентов в направленном потоке. |
4 | Макет сетки
GridLayout управляет компонентами в форме прямоугольной сетки. |
5 | GridBagLayout
Это самый гибкий класс диспетчера макетов. Объект GridBagLayout выравнивает компонент по вертикали, горизонтали или вдоль их базовой линии, не требуя компонентов одинакового размера. |
6 | GroupLayout
GroupLayout иерархически группирует компоненты, чтобы расположить их в контейнере. |
7 | SpringLayout
SpringLayout размещает дочерние элементы своего связанного контейнера в соответствии с набором ограничений. |
Граничная планировка размещает компоненты в пяти областях: восток, запад, север, юг и центр.
Объект CardLayout рассматривает каждый компонент в контейнере как карту. Только одна карта видна одновременно.
FlowLayout является макетом по умолчанию. Это расположение компонентов в направленном потоке.
GridLayout управляет компонентами в форме прямоугольной сетки.
Это самый гибкий класс диспетчера макетов. Объект GridBagLayout выравнивает компонент по вертикали, горизонтали или вдоль их базовой линии, не требуя компонентов одинакового размера.
GroupLayout иерархически группирует компоненты, чтобы расположить их в контейнере.
SpringLayout размещает дочерние элементы своего связанного контейнера в соответствии с набором ограничений.
SWING — Меню Классов
Как известно, с каждым окном верхнего уровня связана строка меню. Эта строка меню состоит из различных вариантов меню, доступных для конечного пользователя. Далее, каждый вариант содержит список параметров, который называется выпадающим меню. Элементы управления Menu и MenuItem являются подклассом класса MenuComponent.
Иерархия меню
Элементы управления меню
Sr.No. | Класс и описание |
---|---|
1 | JMenuBar
Объект JMenuBar связан с окном верхнего уровня. |
2 | JMenuItem
Элементы в меню должны принадлежать JMenuItem или любому его подклассу. |
3 | JMenu
Объект JMenu является компонентом выпадающего меню, которое отображается в строке меню. |
4 | JCheckboxMenuItem
JCheckboxMenuItem является подклассом JMenuItem. |
5 | JRadioButtonMenuItem
JRadioButtonMenuItem является подклассом JMenuItem. |
6 | JPopupMenu
JPopupMenu может динамически появляться в указанной позиции в компоненте. |
Объект JMenuBar связан с окном верхнего уровня.
Элементы в меню должны принадлежать JMenuItem или любому его подклассу.
Объект JMenu является компонентом выпадающего меню, которое отображается в строке меню.
JCheckboxMenuItem является подклассом JMenuItem.
JRadioButtonMenuItem является подклассом JMenuItem.
JPopupMenu может динамически появляться в указанной позиции в компоненте.
SWING — Контейнеры
Контейнеры являются неотъемлемой частью компонентов SWING GUI. Контейнер предоставляет пространство, в котором может быть расположен компонент. Контейнер в AWT является самим компонентом и предоставляет возможность добавлять компонент к себе. Ниже приведены некоторые заметные моменты, которые следует учитывать.
-
Подклассы Контейнера называются Контейнером. Например, JPanel, JFrame и JWindow.
-
Контейнер может добавить только Компонент к себе.
-
Макет по умолчанию присутствует в каждом контейнере, который можно переопределить с помощью метода setLayout .
Подклассы Контейнера называются Контейнером. Например, JPanel, JFrame и JWindow.
Контейнер может добавить только Компонент к себе.
Макет по умолчанию присутствует в каждом контейнере, который можно переопределить с помощью метода setLayout .
SWING Контейнеры
Ниже приведен список часто используемых контейнеров при разработке графического интерфейса с использованием SWING.
JPanel — самый простой контейнер. Он обеспечивает пространство, в которое может быть помещен любой другой компонент, включая другие панели.
JFrame — это окно верхнего уровня с заголовком и рамкой.
Объект JWindow — это окно верхнего уровня без границ и без меню.