Swing java что это

Библиотека Swing

Графический интерфейс в Java прошел весьма тернистый путь развития и становления. Долгое время его обвиняли в медленной работе, жадности к ресурсам системы и ограниченной функциональности.

Java AWT

Первой попыткой Sun создать графический интерфейс для Java была библиотека AWT (Abstract Window Toolkit) — инструментарий для работы с различными оконными средами. Sun сделал прослойку на Java, которая вызывает методы из библиотек, написанных на С. Библиотечные методы AWT создают и используют графические компоненты операционной среды. С одной стороны, это хорошо, так как программа на Java похожа на остальные программы в рамках одной ОС. Но при запуске ее на другой платформе могут возникнуть различия в размерах компонентов и шрифтов, которые будут портить внешний вид программы.

Чтобы обеспечить мультиплатформенность AWT интерфейсы вызовов компонентов были унифицированы, вследствии чего их функциональность получилась немного урезанной. Да и набор компонентов получился довольно небольшой. Так например, в AWT нет таблиц, а в кнопках не поддерживается отображение иконок. Тем не менее пакет java.awt входит в Java с самого первого выпуска и его можно использовать для создания графических интерфейсов.

Таким образом, компоненты AWT не выполняют никакой «работы». Это просто «Java-оболочка» для элементов управления той операционной системы, на которой они работают. Все запросы к этим компонентам перенаправляются к операционной системе, которая и выполняет всю работу.

Использованные ресурсы AWT старается освобождать автоматически. Это немного усложняет архитектуру и влияет на производительность. Написать что-то серьезное с использованием AWT будет несколько затруднительно. Сейчас ее используют разве что для апплетов.

Основные концепции SWING

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

Создатели новой библиотеки пользовательского интерфейса Swing не стали «изобретать велосипед» и в качестве основы для своей библиотеки выбрали AWT. Конечно, речь не шла об использовании конкретных тяжеловесных компонентов AWT (представленных классами Button, Label и им подобными). Нужную степень гибкости и управляемости обеспечивали только легковесные компоненты. На диаграмме наследования представлена связь между AWT и Swing.

Swing java что это. swing base. Swing java что это фото. Swing java что это-swing base. картинка Swing java что это. картинка swing base

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

Swing контейнеры высшего уровня

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

Простой Swing пример создания оконного интерфейса JFrame.

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

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

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

По умолчанию окно создается невидимым. Чтобы отобразить окно на экране вызывается метод setVisible с параметром true. Если вызвать его с параметром false, окно станет невидимым.

Графический интерфейс java swing примера создания окна JFrame представлен на следующем рисунке.

Swing java что это. swing jframe. Swing java что это фото. Swing java что это-swing jframe. картинка Swing java что это. картинка swing jframe

Для подключения библиотеки Swing в приложении необходимо импортировать библиотеку javax.swing.

Корневая панель JRootPane

Каждый раз, как только создается контейнер высшего уровня, будь то обычное окно, диалоговое окно или апплет, в конструкторе этого контейнера создается корневая панель JRootPane. Контейнеры высшего уровня Swing следят за тем, чтобы другие компоненты не смогли «пробраться» за пределы JRootPane.

Корневая палель JRootPane добавляет в контейнеры свойство «глубины», обеспечивая возможность не только размещать компоненты один над другим, но и при необходимости менять их местами, увеличивать или уменьшать глубину расположения компонентов. Такая возможность необходима при создании многодокументного приложения Swing, у которого окна представляют легковесные компоненты, располагающиеся друг над другом, а также выпадающими (контекстными) меню и всплывающими подсказками.

На следующем рисунке наглядно представлена структура корневой панели JRootPane.

Swing java что это. swing rootpane. Swing java что это фото. Swing java что это-swing rootpane. картинка Swing java что это. картинка swing rootpane

Корневая панель JRootPane представляет собой контейнер, унаследованный от базового класса Swing JComponent. В этом контейнере за расположение компонентов отвечает специальный менеджер расположения, реализованный во внутреннем классе RootPaneLayout. Этот менеджер расположения отвечает за то, чтобы все составные части корневой панели размещались так, как им следует: многослойная панель занимает все пространство окна; в ее слое FRAME_CONTENT_LAYER располагаются строка меню и панель содержимого, а над всем этим располагется прозрачная панель.

Все составляющие корневой панели JRootPane можно получить или изменить. Для этого у нее есть набор методов get/set. Программным способом JRootPane можно получить с использованием метода getRootPane().

Кроме контейнеров высшего уровня корневая панель применяется во внутренних окнах JInternalFrame, создаваемых в многодокументных приложениях и располагающихся на «рабочем столе» JDesktopPane. Это позволяет забыть про то, что данные окна представляют собой обычные легковесные компоненты, и работать с ними как с настоящими контейнерами высшего уровня.

Многослойная панель JLayeredPane

В основании корневой панели (контейнера) лежит так называемая многослойная панель JLayeredPane, занимающая все доступное пространство контейнера. Именно в этой панели располагаются все остальные части корневой панели, в том числе и все компоненты пользовательского интерфейса.

JLayeredPane используется для добавления в контейнер свойства глубины (depth). To есть, многослойная панель позволяет организовать в контейнере третье измерение, вдоль которого располагаются слои (layers) компонента. В обычном контейнере расположение компонента определяется прямоугольником, который показывает, какую часть контейнера занимает компонент. При добавлении компонента в многослойную панель необходимо указать не только прямоугольник, занимаемый компонентом, но и слой, в котором он будет располагаться. Слой в многослойной панели определяется целым числом. Чем больше определяющее слой число, тем выше слой находится.

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

Возможности многослойной панели широко используются некоторыми компонентами Swing. Особенно они важны для многодокументных приложений, всплывающих подсказок и меню. Многодокументные Swing приложения задействуют специальный контейнер JDesktopPane («рабочий стол»), унаследованный от JLayeredPane, в котором располагаются внутренние окна Swing. Самые важные функции многодокументного приложения — расположение «активного» окна над другими, сворачивание окон, их перетаскивание — обеспечиваются механизмами многослойной панели. Основное преимущество от использования многослойной панели для всплывающих подсказок и меню — это ускорение их работы. Вместо создания для каждой подсказки или меню нового тяжеловесного окна, располагающегося над компонентом, в котором возник запрос на вывод подсказки или меню, Swing создает быстрый легковесный компонент. Этот компонент размещается в достаточно высоком слое многослойной панели выше в стопке всех остальных компонентов и используется для вывода подсказки или меню.

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

Swing java что это. swing layeredpane. Swing java что это фото. Swing java что это-swing layeredpane. картинка Swing java что это. картинка swing layeredpane

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

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

Слой Modal планировался для размещения легковесных модальных диалоговых окон. Однако такие диалоговые окна пока не реализованы, так что этот слой в Swing в настоящее время не используется.

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

Самый верхний слой. Предназначен для операций перетаскивания (drag and drop), которые должны быть хорошо видны в интерфейсе программы.

Небольшой пример JLayeredPane с многослойной панелью показывает, как добавлять компоненты в различные слои и как слои располагаются друг над другом :

В примере создается небольшое окно JFrame и в многослойную панель добавляется несколько компонентов Figure. Чтобы получить многослойную панель в любом контейнере Swing высшего уровня, достаточно вызвать метод getLayeredPane().

Вспомогательный класс Figure наследует свойства базового класса JComponent и позволяет различными цветами рисовать фигуры двух типов (круги и прямоугольники). Параметры для прорисовки фигур задаются в конструкторе класса.

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

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

Swing java что это. swing layeredpane ui. Swing java что это фото. Swing java что это-swing layeredpane ui. картинка Swing java что это. картинка swing layeredpane ui

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

Панель содержимого ContentPane

Обратиться к панели содержимого можно методом getContentPane() класса JFrame. С помощью метода add(Component component) можно добавить на нее любой элемент управления. Заменить ContentPane любой другой панелью типа JPanel можно методом setContentPane()

Пример добавления кнопки в панель содержимого :

Swing java что это. swing jframe btn. Swing java что это фото. Swing java что это-swing jframe btn. картинка Swing java что это. картинка swing jframe btn

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

Панель содержимого можно полностью заменить. Рассмотрим следующий Swing пример использования панели содержимого ContentPane.

Swing java что это. swing contentpane. Swing java что это фото. Swing java что это-swing contentpane. картинка Swing java что это. картинка swing contentpane

Панель содержимого ContentPane сама собой не представляет ничего особенного. Необходимо лишь помнить, что компоненты добавляются именно в нее.

Прозрачная панель JOptionPane

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

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

В каких случаях можно использовать прозрачную панель JOptionPane? С ее помощью можно определять функции приложения, для реализации которых «с нуля» понадобились бы серьезные усилия. Прозрачную панель можно приспособить под автоматизированное тестирование пользовательского интерфейса. Синтезируемые в ней события позволяют отслеживать промежуточные отладочные результаты. Иногда такой подход гораздо эффективнее ручного тестирования.

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

Пример использования прозрачной панели Swing JOptionPane :

Если методу setDefaultCloseOperation передать константу JFrame.EXIT_ON_CLOSE, то при закрытии окна приложение будет прекращать работу. В примере этому методу передается константа JFrame.DO_NOTHING_ON_CLOSE, чтобы при закрытии окна ничего не происходило. Выход из приложения в примере осуществляется из JFrame слушателя WindowListener в методе windowClosing. При закрытии окна вызывается метод windowClosing с параметром WindowEvent event, который в прозрачной панели Swing JOptionPane открывает диалоговое окно подтверждения.

На следующем скриншоте представлены два окна приложения. Верхнее главное окно. При закрытии данного окна открывается нижнее диалоговое окно подтверждения намерения.

Swing java что это. swing joptionpane. Swing java что это фото. Swing java что это-swing joptionpane. картинка Swing java что это. картинка swing joptionpane

Строка меню JMenuBar

Одной из важных особенностей использования корневой панели JRootPane в Swing, является необходимость размещения в окне строки меню JMenuBar. Серьезное приложение нельзя построить без какого-либо меню для получения доступа к функциям программы. Библиотека Swing предоставляет прекрасные возможности для создания удобных меню JMenuBar, которые также являются легковесными компонентами.

Строка меню JMenuBar размещается в многослойной панели в специальном слое FRAME_CONTENT_LAYER и занимает небольшое пространство в верхней части окна. По размерам в длину строка меню равна размеру окна. Ширина строки меню зависит от содержащихся в ней компонентов.

Корневая панель следит, чтобы панель содержимого и строка меню JMenuBar не перекрывались. Если строка меню не требуется, то корневая панель использует все пространство для размещения панели содержимого.

Примеры Swing

Исходные коды примеров, рассмотренных в тексте страницы, можно скачать здесь.

Источник

Java. Swing. Основы

В стандарт Java входит два пакета для создания оконного пользовательского интерфейса: awt и его надстройка swing. Компоненты swing имеют расширенные возможности по сравнению с аналогичными awt компонентами, поэтому упор будет сделан на них. Во-вторых, в отличие от awt компоненты swing не содержат платформо-зависимого кода. Так сказать являются облегченными (lightweight) компонентами.

контейнеры верхнего уровня

простые контейнеры

элементы интерфейса

Следующие элементы управления могут использоваться и как контейнеры, так как наследуются от класса java.awt.Container.

управление позиционированием и размерами

Для автоматического позиционирования и задания размеров дочерних элементов контейнерыиспользуют специальные объекты — компоновщики. Для ручного позиционирования надо установить пустой объект вызовом метода setLayout(null).

Ниже приведен список стандартных компоновщиков:

события

Элементы интерфейса и контейнеры генерируют ряд событий, например:

Для обработки событий элемента в нем необходимо зарегистрировать объект обработчик
в числе слушателей. Делается это методами типа addxxxListener, например addMouseListener(). В качестве объектов обработчиков обычно выбирают контейнер, в котором содержится элемент.Обработка события осуществляется через соответствующий интерфейс, например:

Если весь интерфейс реализовывать не нужно, например, нужен только
один из методов, то можно воспользоваться адаптерами.

Первое оконное приложение с использованием Java Swing

Обычно оконное приложение состоит из одного и более окон и диалогов.
В отличие от простых контейнеров контейнеры верхнего уровня имеют более сложную внутреннюю структуру. Для них автоматически создается корневой контейнер — объект класса JRootPane, который можно получить методом getRootPane(). Внутри корневого создаются еще дваобъекта: слойный контейнер и объект представляющий окно как компонент.

В большинстве случаев в слойном контейнере используются первых два контейнера слоя. Первый для хранения большинства элементов управления окна, так сказать клиентская область окна. Для доступа к нему прямо из окна используется метод getContentPane, также его можно заменить любым другим контейнером методом setContentPane(). Второй контейнер слой используется для хранения меню, панелей инструментов и т.п. Например, панель меню, добавляемая к окну, методом setJMenuBar() сохраняется именно там.

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

Ниже приведен минимальный шаблон оконного приложения.
Классы MyPanel и MyComponent — пользовательские классы, которые будут реализованы в некоторыхследующих примерах для демонстрации возможностей swing. Вам остается просто скопировать со страницы код MyPanel/MyComponent в проект со шаблоном, подправить шаблон и запустить его.

Ниже приведен более сложный пример с несколькими дочерними элементами и обработкой
событий.

Компоновщики

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

стандартные компоновщики

точное позиционирование и задание размеров

Если в контейнере отсутствует компоновщик (был вызван метод контейнера setLayout(null)), то позицию и размеры элементов необходимо задать явно методами элемента

предпочтительные размеры

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

компоновщики низкого уровня

Существует также два компоновщика низкого уровня, разработанных для программ построителей форм SpringLayout и GroupLayout. В
документации
для SpringLayout можно скачать файлик SpringUtilities.java, где реализованы два полезных способа компоновки на его основе (как там сказано просто вызываем методы из этого файла, не вникая в детали:).

класс Box

Класс Box реализует контейнер с компоновщиком BoxLayout. Если элементы размещаются по горизонтали, то высота всех элементов равна высоте самого высокого элемента.А ширина элементов такова, чтобы заполнить весь контейнер по ширине.
При изменении ширины контейнера элементы растягиваются пропорционально. Если у всех элементов достигнут предел растяжения (значение getMaximumSize()), то первый элемент растягивается насильно. Если остается хотя бы один элемент доступный для растяжения, то растягивается только он.

Подобным образом происходит и вертикальное размещение. Ширина всех элементов равна ширине самого широкого элемента, а высота элеметов такова, чтобы заполнить весь контейнер по высоте. При этом может понадобится явное задание выравнивания элементов методом setAlignmentX. Иначе даже при одинаковой ширине, элементы не будут выстроены в красивый столбик.

Класс Box имеет статические методы для создания невидимых элементов для различных целей:

пример использования компоновщиков

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

Источник

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

Настройка пути для Windows 2000 / XP

Предполагая, что вы установили Java в каталог c: \ Program Files \ java \ jdk

Шаг 1 — Щелкните правой кнопкой мыши «Мой компьютер» и выберите «Свойства».

Шаг 2 — Нажмите кнопку «Переменные среды» на вкладке «Дополнительно».

Настройка пути для Windows 95/98 / ME

Предполагая, что вы установили Java в каталог c: \ Program Files \ java \ jdk

Настройка пути для Linux, UNIX, Solaris, FreeBSD

Переменная среды PATH должна указывать на то, где установлены двоичные файлы Java. Обратитесь к документации Shell, если у вас возникли проблемы с этим.

Популярные редакторы Java

Для написания ваших программ на Java вам понадобится текстовый редактор. На рынке доступны еще более сложные IDE. Но сейчас вы можете рассмотреть один из следующих —

Блокнот — на компьютере с Windows вы можете использовать любой простой текстовый редактор, например Блокнот (рекомендуется для этого урока), TextPad.

Блокнот — на компьютере с Windows вы можете использовать любой простой текстовый редактор, например Блокнот (рекомендуется для этого урока), TextPad.

SWING — Управление

Каждый пользовательский интерфейс рассматривает следующие три основных аспекта:

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

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

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

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

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

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

Swing java что это. swing class hierarchy 1. Swing java что это фото. Swing java что это-swing class hierarchy 1. картинка Swing java что это. картинка swing class hierarchy 1

Каждый элемент управления SWING наследует свойства из следующего класса компонентов hiearchy.

S.No.Класс и описание
1Составная часть

Компонент — это абстрактный базовый класс для элементов управления SWING без пользовательского интерфейса. Компонент представляет объект с графическим представлением

Контейнер — это компонент, который может содержать другие компоненты SWING.

JComponent — это базовый класс для всех компонентов пользовательского интерфейса SWING. Чтобы использовать компонент SWING, который наследуется от JComponent, этот компонент должен находиться в иерархии содержимого, корнем которой является контейнер SWING верхнего уровня.

Компонент — это абстрактный базовый класс для элементов управления SWING без пользовательского интерфейса. Компонент представляет объект с графическим представлением

Контейнер — это компонент, который может содержать другие компоненты SWING.

JComponent — это базовый класс для всех компонентов пользовательского интерфейса SWING. Чтобы использовать компонент SWING, который наследуется от JComponent, этот компонент должен находиться в иерархии содержимого, корнем которой является контейнер SWING верхнего уровня.

Элементы пользовательского интерфейса SWING

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

S.No.Класс и описание
1JLabel

Объект JLabel — это компонент для размещения текста в контейнере.

Этот класс создает помеченную кнопку.

JColorChooser предоставляет панель управления, разработанную, чтобы позволить пользователю манипулировать и выбирать цвет.

JCheckBox — это графический компонент, который может находиться во включенном (true) или выключенном (false) состоянии.

Класс JRadioButton представляет собой графический компонент, который может находиться в состоянии «включено» (true) или « выключено» (false). в группе.

Компонент JList предоставляет пользователю список прокручиваемых текстовых элементов.

Компонент JComboBox предоставляет пользователю доступ к меню выбора.

Объект JTextField — это текстовый компонент, который позволяет редактировать одну строку текста.

Объект JPasswordField — это текстовый компонент, предназначенный для ввода пароля.

Объект JTextArea — это текстовый компонент, который позволяет редактировать несколько строк текста.

Элемент управления ImageIcon — это реализация интерфейса Icon, который рисует значки из изображений

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

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

Элемент управления JFileChooser представляет диалоговое окно, из которого пользователь может выбрать файл.

По мере продвижения задачи к завершению на индикаторе выполнения отображается процент выполнения задачи.

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *