Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемНаталия Яблочкова
1 1 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-1 Введение в разработку GUI
2 2 © Luxoft Training 2013 Обзор библиотек GUI GUI (graphical user interface) – графический интерфейс пользователя Одной из основ Java является идея WORE, что достаточно хорошо решается с использованием идеи компиляции программы в байт-код и его интерпретированием виртуальной машиной 6-2 Введение
3 3 © Luxoft Training 2013 Обзор библиотек GUI Однако, все несколько сложнее с созданием кросс-платформенных GUI приложений Действительно, различные аппаратные платформы и ОС имеют различные встроенные средства создания графических интерфейсов Очень часто их сложно унифицировать 6-3 Введение
4 4 © Luxoft Training 2013 Обзор библиотек GUI Существуют следующие распространенные библиотеки создания переносимых GUI приложений на Java: AWT Swing SWT 6-4 Введение
5 5 © Luxoft Training 2013 Обзор библиотек GUI AWT и Swing входят в состав более крупной графической библиотеки от Sun JFC(Java Foundation Classes) Название Java Foundation Classes перекликается с названием известной оконной библиотеки MFC (Microsoft Foundation Classes) для платформ Windows 6-5 Библиотеки от Sun
6 6 © Luxoft Training 2013 Обзор библиотек GUI И действительно, функционально JFC решает задачи, сходные с теми, которые решает MFC - как и MFC, JFC предназначена прежде всего для создания графических пользовательских интерфейсов 6-6 Библиотеки от Sun
7 7 © Luxoft Training 2013 Обзор библиотек GUI AWT является первой графической библиотекой, появившейся в Java Содержит ряд графических компонент, таких как окна, кнопки и т.д. 6-7 AWT
8 8 © Luxoft Training 2013 Обзор библиотек GUI При создании компонента делается вызов системной функции (native вызов) и за отрисовку компонента отвечает соответствующая графическая библиотека данной ОС Данные компоненты поддерживают лишь то подмножество функциональных возможностей, которое присуще всем платформам 6-8 AWT
9 9 © Luxoft Training 2013 Обзор библиотек GUI Компоненты выглядят по разному на разных ОС В настоящее время AWT вытеснено библиотекой Swing 6-9 AWT
10 10 © Luxoft Training 2013 Обзор библиотек GUI Swing предоставляет более гибкие интерфейсные компоненты, чем AWT В отличие от AWT, компоненты Swing разработаны для одинаковой кросс- платформенной работы, в то время как компоненты AWT повторяют интерфейс исполняемой платформы без изменений 6-10 Swing
11 11 © Luxoft Training 2013 Обзор библиотек GUI Standard Widget Toolkit (SWT) - библиотека с открытым исходным кодом для разработки графических интерфейсов пользователя на языке Java Разработана фондом Eclipse, лицензируется под Eclipse Public License, одной из лицензий открытого ПО 6-11 SWT
12 12 © Luxoft Training 2013 Обзор библиотек GUI SWT не является самостоятельной графической библиотекой, а представляет собой кросс- платформенную оболочку для графических библиотек конкретных платформ 6-12 SWT
13 13 © Luxoft Training 2013 Обзор библиотек GUI Например, под GNU/Linux SWT использует библиотеку Gtk+ SWT написана на стандартной Java и получает доступ к OS-специфичным библиотекам через Java Native Interface Этот подход рассматривается в качестве сильного средства, несмотря на то, что это не является чистой Java 6-13 SWT
14 14 © Luxoft Training 2013 Обзор библиотек GUI SWT - альтернатива AWT и Swing (Sun Microsystems) для разработчиков, желающих получить привычный внешний вид программы в данной OS и избежать части проблем, связанных с переучиванием пользователей 6-14 SWT
15 15 © Luxoft Training 2013 Обзор библиотек GUI Использование SWT делает Java- приложение более эффективным, но снижает независимость от OS и оборудования, требует ручного освобождения ресурсов и в некоторой степени нарушает Sun-концепцию платформы Java 6-15 SWT
16 16 © Luxoft Training 2013 Обзор библиотек GUI Идеологически SWT очень близко к AWT, однако, реализована лучше, имеет более продуманную архитектуру и больший набор графических компонент 6-16 SWT
17 17 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-17 Введение в разработку GUI
18 18 © Luxoft Training 2013 Swing Swing – библиотека для создания графического интерфейса на Java Swing был разработан компанией Sun Microsystems. Он содержит ряд графических компонентов (Swing widgets), таких как кнопки, поля ввода, таблицы и т. д Что такое Swing?
19 19 © Luxoft Training 2013 Swing Swing относится к библиотеке классов JFC, которая представляет собой набор библиотек для разработки графических оболочек. К этим библиотекам относятся Java 2D, Accessibility-API, Drag & Drop-API и AWT 6-19 Что такое Swing?
20 20 © Luxoft Training 2013 Swing В отличие от AWT, компоненты Swing разработаны для одинаковой кросс-платформенной работы, в то время как компоненты AWT повторяют интерфейс исполняемой платформы без изменений 6-20 Что такое Swing?
21 21 © Luxoft Training 2013 Swing Компоненты Swing поддерживают специфические динамически подключаемые виды и поведения (plugable look-and-feel (внешнее представление интерфейса)), благодаря которому возможна адаптация к графическому интерфейсу платформы 6-21 Что такое Swing?
22 22 © Luxoft Training 2013 Swing Таким образом, приложения, использующие Swing, могут выглядеть как родные приложения для данной операционной системы Основным минусом таких «легковесных» (lightweight) компонентов является относительно медленная работа 6-22 Что такое Swing?
23 23 © Luxoft Training 2013 Swing Положительная сторона - универсальность интерфейса созданных приложений на всех платформах 6-23 Что такое Swing?
24 24 © Luxoft Training 2013 Swing «Lightweight» означает, что компоненты Swing отрисовываются, используя графические примитивы (линии, точки и т.д.) на поверхности родительского окна, без использования компонентов операционной системы Начиная с версии Java 1.2 (1998 г.), Swing включен в JRE 6-24 Что такое Swing?
25 25 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-25 Введение в разработку GUI
26 26 © Luxoft Training 2013 Swing 6-26 Пакеты Swing
27 27 © Luxoft Training 2013 Архитектура Swing Графическая библиотека Swing состоит из следующих элементов: Контейнеры – находятся на вершине иерархии вложенности GUI Компоненты – содержат все GUI компоненты (кнопки и т.д.), наследуют класс JComponent Layout Managers – ответственны за расположение компонент в контейнере 6-27 Составные части библиотеки
28 28 © Luxoft Training 2013 Архитектура Swing 6-28 Составные части библиотеки
29 29 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-29 Введение в разработку GUI
30 30 © Luxoft Training 2013 Swing Контейнеры Swing могут быть классифицированы тремя главными категориями: Контейнеры верхнего уровня: JFrame, JWindow и JDialog Контейнеры основного назначения: JPanel, JScrollPane, JToolBar, JSplitPane и JTabbedPane Контейнеры особого назначения: JInternalFrame и JLayeredPane 6-30 Контейнеры Swing
31 31 © Luxoft Training 2013 Контейнеры Swing 6-31 Контейнеры верхнего уровня
32 32 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-32 Введение в разработку GUI
33 33 © Luxoft Training 2013 Swing Компоненты Swing грубо могут быть классифицированы на: Кнопки Текстовые компоненты Компоненты отображения не редактируемой информации Меню Компоненты форматированного отображения Прочие графические компоненты 6-33 Компоненты Swing
34 34 © Luxoft Training 2013 Компоненты Swing 6-34 Иерархия компонент
35 35 © Luxoft Training 2013 Компоненты Swing Текстовые компоненты Swing могут быть разделены на три категории: Текстовое поле – поле ввода одной строки. Классы - JTextField, JPasswordField Text area – область текста, состоящая из одной или нескольких строк. Класс - JTextArea Стилизованная text area – отображает отформатированный текст. Классы: JEditorPane, JTextPane 6-35 Текстовые компоненты
36 36 © Luxoft Training 2013 Компоненты Swing Т.к. все компоненты Swing расширяют компонент JComponent, то они наследуют ряд его свойств и методов Так же каждый компонент может добавлять свой набор свойств и методов 6-36 Общие свойства компонентов
37 37 © Luxoft Training 2013 Компоненты Swing 6-37 Общие свойства компонентов (JComponent)
38 38 © Luxoft Training 2013 Компоненты Swing Каждый компонент определяет более специфические свойства Свойства компонента JComboBox : 6-38 Специфические свойства компонентов
39 39 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-39 Введение в разработку GUI
40 40 © Luxoft Training 2013 Менеджеры компоновки Swing Менеджер компоновки решает проблемы возникающие из-за: Изменения размеров экранных форм пользователем Разницу в представлении шрифтов в различных ОС Различия в представлениях текста в различных локалях 6-40 Введение
41 41 © Luxoft Training 2013 Менеджеры компоновки Swing Классы менеджеров компоновки: BorderLayout FlowLayout BoxLayout CardLayout GridLayout GridBagLayout 6-41 Список
42 42 © Luxoft Training 2013 Менеджеры компоновки Swing При использовании компоновки BorderLayout окно контейнера разделяется на рамку и центральную часть. Компоненты размещаются сверху, снизу, слева, по центру, справа относительно контейнера 6-42 Режим BorderLayout
43 43 © Luxoft Training 2013 Менеджеры компоновки Swing 6-43 Режим BorderLayout. Пример
44 44 © Luxoft Training 2013 Компоненты Swing 6-44 Режим BorderLayout. Пример
45 45 © Luxoft Training 2013 Менеджеры компоновки Swing В режиме FlowLayout компоненты добавляются в окно следующим образом: каждый новый добавленный компонент располагается вслед за предыдущим в направлении слева направо Когда пространство заканчивается, происходит переход на новую строку Это самая простая в использовании схема компановки элементов 6-45 Режим FlowLayout
46 46 © Luxoft Training 2013 Менеджеры компоновки Swing 6-46 Режим FlowLayout. Пример
47 47 © Luxoft Training 2013 Layout Manager 6-47 Режим FlowLayout. Пример
48 48 © Luxoft Training 2013 Layout Manager В режиме BoxLayout компоненты добавляются слева направо или сверху вниз 6-48 Режим BoxLayout
49 49 © Luxoft Training 2013 Менеджеры компоновки Swing В режиме CardLayout компоненты отображаются в различных карточках. Карточки обычно контролируются выпадающими списками 6-49 Режим CardLayout
50 50 © Luxoft Training 2013 Менеджеры компоновки Swing В режиме GridLayout компоненты размещаются в ячейках таблицы, параметры которой можно задать с помощью конструкторов класса GridLayout 6-50 Режим GridLayout
51 51 © Luxoft Training 2013 Менеджеры компоновки Swing При размещении компонент внутри ячеек таблицы все они получают одинаковые размеры Если один из параметров, задающих размерность таблицы, равен нулю, это означает, что соответствующий столбец или строка может содержать любое количество элементов Режим GridLayout
52 52 © Luxoft Training 2013 Менеджеры компоновки Swing 6-52 Режим GridLayout. Пример
53 53 © Luxoft Training 2013 Менеджеры компоновки Swing 6-53 Режим GridLayout. Пример
54 54 © Luxoft Training 2013 Менеджеры компоновки Swing Режим GridBagLayout намного сложнее только что описанного режима GridLayout Он позволяет размещать компоненты разного размера в таблице, задавая при этом для отдельных компонент размеры отступов и количество занимаемых ячеек 6-54 Режим GridBagLayout
55 55 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-55 Введение в разработку GUI
56 56 © Luxoft Training 2013 Создание GUI приложения Создание GUI части приложения (то, что относится к представлению, а не к поведению. View часть паттерна MVC) можно вести двумя способами: Программно Используя GUI инструменты 6-56 Введение
57 57 © Luxoft Training 2013 Создание GUI приложения Вопрос «какой путь предпочтительнее» является открытым и решается индивидуально в каждом случае командой разработки Использование GUI инструментов позволяет создать графические интерфейсы быстрее, но оставляет меньше контроля за сгенерированным кодом 6-57 Что лучше?
58 58 © Luxoft Training 2013 Создание GUI приложения 6-58 Пример программного создания GUI
59 59 © Luxoft Training 2013 Создание GUI приложения 6-59 Пример программного создания GUI
60 60 © Luxoft Training 2013 Создание GUI приложения Окно, созданное в программном коде: 6-60 Пример программного создания GUI
61 61 © Luxoft Training 2013 Создание GUI приложения Методы установки главного окна JFrame и добавления JLabel : setDefaultCloseOperationJFrame.E XIT_ON_CLOSE) – осуществляет завершение программы, когда нажимается кнопка закрытия 6-61 Использованные ключевые методы
62 62 © Luxoft Training 2013 Создание GUI приложения setVisible(true) – делает JFrame видимым JLabel добавляется к панели содержимого, не к напрямую к JFrame 6-62 Использованные ключевые методы
63 63 © Luxoft Training 2013 Создание GUI приложения Задачи: Выполнение кода GUI приложения, такого как визуализация Обработка событий GUI Обработка временных задержек (background) Класс SwingUtilities : SwingUtilites.invokeLater(new Runnable()) 6-63 Ключевые методы
64 64 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-64 Введение в разработку GUI
65 65 © Luxoft Training 2013 Обработка событий GUI События – объекты, описывающие происходящие Источники события – некие внешние воздействия, обычно генерируемые пользователем. Например нажатие на кнопку, перемещение окна и т.п События. Определение
66 66 © Luxoft Training 2013 Обработка событий GUI Обработчик события (event handler) –это метод класса, реализующего специальный интерфейс, называемый слушателем (listener), получающий объект событие Получив событие обработчик расшифровывает его и обрабатывает действия пользователя 6-66 События. Определение
67 67 © Luxoft Training 2013 Обработка событий GUI Данная техника является реализацией шаблона GoF observer События. Определение
68 68 © Luxoft Training 2013 Обработка событий GUI Различные действия пользователя могут группироваться в категории, для которых в Swing существуют соответствующие слушатели, обрабатывающие то или иное событие 6-68 События. Определение
69 69 © Luxoft Training 2013 Обработка событий GUI 6-69 События. Пример
70 70 © Luxoft Training 2013 Обработка событий GUI Событие может быть послано многим слушателям 6-70 Модель делегирования
71 71 © Luxoft Training 2013 Обработка событий GUI Обработчик событий связывается (регистрируется) с компонентом, когда он заинтересован в событиях генерируемых этим компонентом 6-71 Модель делегирования
72 72 © Luxoft Training 2013 Обработка событий GUI Клиентские объекты (хэндлеры) регистрируются с GUI компонентом, который они хотят наблюдать GUI компонент срабатывает только для обработчиков, для которых произошло событие нужного типа Большинство компонент может производить более одного типа событий 6-72 Слушатели
73 73 © Luxoft Training 2013 Обработка событий GUI 6-73 Слушатели. Пример
74 74 © Luxoft Training 2013 Обработка событий GUI 6-74 Слушатели. Пример продолжение
75 75 © Luxoft Training 2013 Обработка событий GUI 6-75 Код обработчика события
76 76 © Luxoft Training 2013 Обработка событий GUI 6-76 Категории событий
77 77 © Luxoft Training 2013 Обработка событий GUI Следующие таблицы детализируют категории действия, производимого пользователем, соответствующие ему слушатели, их методы и события 6-77 Модель делегирования
78 78 © Luxoft Training 2013 Обработка событий GUI Категории слушателей и их интерфейсы: 6-78 Слушатели
79 79 © Luxoft Training 2013 Обработка событий GUI 6-79 Слушатели
80 80 © Luxoft Training 2013 Обработка событий GUI 6-80 Слушатели
81 81 © Luxoft Training 2013 Обработка событий GUI 6-81 Слушатели
82 82 © Luxoft Training 2013 Обработка событий GUI Рассмотрим комплексный пример в Eclipse 6-82 Слушатели
83 83 © Luxoft Training 2013 Обработка событий GUI Одно событие может обрабатываться несколькими слушателями, относящимися к разным частым программы В этом случае, обработчики для всех зарегистрированных слушателей будут вызываться при возникновении события 6-83 Несколько слушателей
84 84 © Luxoft Training 2013 Обработка событий GUI Для того чтобы не реализовывать все методы интерфейса слушателя можно воспользоваться соответствующим классом адаптера и переопределить только нужные методы 6-84 Адаптеры событий
85 85 © Luxoft Training 2013 Обработка событий GUI Обработчики событий обычно небольшие по размеру. Для них нецелесообразно заводить класс верхнего уровня (класс, определяемый в своем собственном файле) Потому целесообразно использовать вложенные классы и анонимные классы для определения таких обработчиков 6-85 Обработка событий, используя вложенные классы
86 86 © Luxoft Training 2013 Обработка событий GUI 6-86 Обработка событий, используя вложенные классы
87 87 © Luxoft Training 2013 Обработка событий GUI 6-87 Обработка событий, используя вложенные классы
88 88 © Luxoft Training 2013 Обработка событий GUI 6-88 Обработка событий, используя анонимные классы
89 89 © Luxoft Training 2013 Обработка событий GUI 6-89 Обработка событий, используя анонимные классы
90 90 © Luxoft Training 2013Упражнение 6-90 Упражнение 18 Bank Application Создание GUI оболочки
91 91 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-91 Введение в разработку GUI
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.