Учебники

SWING — Краткое руководство

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

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

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

UI классы

Каждый элемент управления 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

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.

Иерархия меню

Swing Menu Hiearchy

Элементы управления меню

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 — это окно верхнего уровня без границ и без меню.