1 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки.

Презентация:



Advertisements
Похожие презентации
Тема 5. Основы современной технологии программирования Программирование в средах современных информационных систем. Интегрированные системы разработки.
Advertisements

Интерфейс текстового процессора Microsoft Word. С помощью ленты можно быстро находить необходимые команды (элементы управления: кнопки, раскрывающиеся.
Под словом объект в Windows понимают почти все, с чем работает операционная система. Каждый объект Windows имеет уникальный набор свойств. Слово уникальный.
Программное обеспечение Классификация, основные функции и составные операционных систем.
1 Java 13. ЭЛЕМЕНТЫ КОМПОНОВКИ И УПРАВЛЕНИЯ. 2 Элементы управления Компоненты библиотеки Swing не привязаны к конкретной платформе. Классы компонент доступны.
1. ЧТО ТАКОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ? НАБОР ПРОГРАММ В ПАМЯТИ КОМПЬЮТЕРА 2. ИЗ КАКИХ ЧАСТЕЙ СОСТОИТ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ? КРОССОВЫЕ ТЕСТОВЫЕ СИСТЕМНЫЕ.
Среда программирования Visual Basic. Презентацию подготовила учитель информатики МБОУ СОШ 3 г. Светлого Нетесова Наталья Александровна.
Базы данных в электронных таблицах 1. Представление базы данных в виде таблицы и формы.
Тема 5. Введение в среду визуального программирования Borland Delphi 7.0.
Архитектура операционных систем Семестр 2, Лекция 1.
Основные понятия операционной системы Windows. Что такое объект? Любой документ для ОС – объект, любая папка, пустая или содержащая в себе документы или.
Джимшелеишвили Тамила 10 группа ММУ 15. Диалоговые панели. Диалоговые панели могут включать несколько вкладок, переключение между которыми осуществляется.
Архитектура операционных систем. Архитектура ОС Состав модулей (компонент) ОС Структура связей между отдельными модулями ОС Принципы взаимодействия модулей.
Основы объектно-ориентированного программирования (ООП)
Модуль 7 Разработка и создание форм. Общие сведения Формы. Основные понятия. Создание форм с помощью мастера. Использование выражений в формах. Работа.
1 Стили текста. Шаблоны и мастера Занятие 6. 2 Изучив эту тему вы научитесь: Выводить на экран колонку стилей. Применять стили к тексту. Создавать новые.
Типы документов. Деталь – это документ КОМПАС-3D, содержащий трехмерное изображение (3D-модель) определенного объекта или изделия, сформированного путем.
Интегрированная среда разработки языкаVisual BasicИнтегрированная среда разработки языкаVisual BasicИнтегрированная среда разработки языкаVisual BasicИнтегрированная.
1. Краткая характеристика MS Access1. Краткая характеристика MS Access 2. Достоинства и недостатки 3. Типы БД 4. Базы данных и системы управления базами.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КОМПЬЮТЕРА Ключевые слова программа программное обеспечение (ПО) системное ПО прикладное ПО система программирования.
Транксрипт:

1 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-1 Введение в разработку GUI

2 © Luxoft Training 2013 Обзор библиотек GUI GUI (graphical user interface) – графический интерфейс пользователя Одной из основ Java является идея WORE, что достаточно хорошо решается с использованием идеи компиляции программы в байт-код и его интерпретированием виртуальной машиной 6-2 Введение

3 © Luxoft Training 2013 Обзор библиотек GUI Однако, все несколько сложнее с созданием кросс-платформенных GUI приложений Действительно, различные аппаратные платформы и ОС имеют различные встроенные средства создания графических интерфейсов Очень часто их сложно унифицировать 6-3 Введение

4 © Luxoft Training 2013 Обзор библиотек GUI Существуют следующие распространенные библиотеки создания переносимых GUI приложений на Java: AWT Swing SWT 6-4 Введение

5 © Luxoft Training 2013 Обзор библиотек GUI AWT и Swing входят в состав более крупной графической библиотеки от Sun JFC(Java Foundation Classes) Название Java Foundation Classes перекликается с названием известной оконной библиотеки MFC (Microsoft Foundation Classes) для платформ Windows 6-5 Библиотеки от Sun

6 © Luxoft Training 2013 Обзор библиотек GUI И действительно, функционально JFC решает задачи, сходные с теми, которые решает MFC - как и MFC, JFC предназначена прежде всего для создания графических пользовательских интерфейсов 6-6 Библиотеки от Sun

7 © Luxoft Training 2013 Обзор библиотек GUI AWT является первой графической библиотекой, появившейся в Java Содержит ряд графических компонент, таких как окна, кнопки и т.д. 6-7 AWT

8 © Luxoft Training 2013 Обзор библиотек GUI При создании компонента делается вызов системной функции (native вызов) и за отрисовку компонента отвечает соответствующая графическая библиотека данной ОС Данные компоненты поддерживают лишь то подмножество функциональных возможностей, которое присуще всем платформам 6-8 AWT

9 © Luxoft Training 2013 Обзор библиотек GUI Компоненты выглядят по разному на разных ОС В настоящее время AWT вытеснено библиотекой Swing 6-9 AWT

10 © Luxoft Training 2013 Обзор библиотек GUI Swing предоставляет более гибкие интерфейсные компоненты, чем AWT В отличие от AWT, компоненты Swing разработаны для одинаковой кросс- платформенной работы, в то время как компоненты AWT повторяют интерфейс исполняемой платформы без изменений 6-10 Swing

11 © Luxoft Training 2013 Обзор библиотек GUI Standard Widget Toolkit (SWT) - библиотека с открытым исходным кодом для разработки графических интерфейсов пользователя на языке Java Разработана фондом Eclipse, лицензируется под Eclipse Public License, одной из лицензий открытого ПО 6-11 SWT

12 © Luxoft Training 2013 Обзор библиотек GUI SWT не является самостоятельной графической библиотекой, а представляет собой кросс- платформенную оболочку для графических библиотек конкретных платформ 6-12 SWT

13 © Luxoft Training 2013 Обзор библиотек GUI Например, под GNU/Linux SWT использует библиотеку Gtk+ SWT написана на стандартной Java и получает доступ к OS-специфичным библиотекам через Java Native Interface Этот подход рассматривается в качестве сильного средства, несмотря на то, что это не является чистой Java 6-13 SWT

14 © Luxoft Training 2013 Обзор библиотек GUI SWT - альтернатива AWT и Swing (Sun Microsystems) для разработчиков, желающих получить привычный внешний вид программы в данной OS и избежать части проблем, связанных с переучиванием пользователей 6-14 SWT

15 © Luxoft Training 2013 Обзор библиотек GUI Использование SWT делает Java- приложение более эффективным, но снижает независимость от OS и оборудования, требует ручного освобождения ресурсов и в некоторой степени нарушает Sun-концепцию платформы Java 6-15 SWT

16 © Luxoft Training 2013 Обзор библиотек GUI Идеологически SWT очень близко к AWT, однако, реализована лучше, имеет более продуманную архитектуру и больший набор графических компонент 6-16 SWT

17 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-17 Введение в разработку GUI

18 © Luxoft Training 2013 Swing Swing – библиотека для создания графического интерфейса на Java Swing был разработан компанией Sun Microsystems. Он содержит ряд графических компонентов (Swing widgets), таких как кнопки, поля ввода, таблицы и т. д Что такое Swing?

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

20 © Luxoft Training 2013 Swing В отличие от AWT, компоненты Swing разработаны для одинаковой кросс-платформенной работы, в то время как компоненты AWT повторяют интерфейс исполняемой платформы без изменений 6-20 Что такое Swing?

21 © Luxoft Training 2013 Swing Компоненты Swing поддерживают специфические динамически подключаемые виды и поведения (plugable look-and-feel (внешнее представление интерфейса)), благодаря которому возможна адаптация к графическому интерфейсу платформы 6-21 Что такое Swing?

22 © Luxoft Training 2013 Swing Таким образом, приложения, использующие Swing, могут выглядеть как родные приложения для данной операционной системы Основным минусом таких «легковесных» (lightweight) компонентов является относительно медленная работа 6-22 Что такое Swing?

23 © Luxoft Training 2013 Swing Положительная сторона - универсальность интерфейса созданных приложений на всех платформах 6-23 Что такое Swing?

24 © Luxoft Training 2013 Swing «Lightweight» означает, что компоненты Swing отрисовываются, используя графические примитивы (линии, точки и т.д.) на поверхности родительского окна, без использования компонентов операционной системы Начиная с версии Java 1.2 (1998 г.), Swing включен в JRE 6-24 Что такое Swing?

25 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-25 Введение в разработку GUI

26 © Luxoft Training 2013 Swing 6-26 Пакеты Swing

27 © Luxoft Training 2013 Архитектура Swing Графическая библиотека Swing состоит из следующих элементов: Контейнеры – находятся на вершине иерархии вложенности GUI Компоненты – содержат все GUI компоненты (кнопки и т.д.), наследуют класс JComponent Layout Managers – ответственны за расположение компонент в контейнере 6-27 Составные части библиотеки

28 © Luxoft Training 2013 Архитектура Swing 6-28 Составные части библиотеки

29 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-29 Введение в разработку GUI

30 © Luxoft Training 2013 Swing Контейнеры Swing могут быть классифицированы тремя главными категориями: Контейнеры верхнего уровня: JFrame, JWindow и JDialog Контейнеры основного назначения: JPanel, JScrollPane, JToolBar, JSplitPane и JTabbedPane Контейнеры особого назначения: JInternalFrame и JLayeredPane 6-30 Контейнеры Swing

31 © Luxoft Training 2013 Контейнеры Swing 6-31 Контейнеры верхнего уровня

32 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-32 Введение в разработку GUI

33 © Luxoft Training 2013 Swing Компоненты Swing грубо могут быть классифицированы на: Кнопки Текстовые компоненты Компоненты отображения не редактируемой информации Меню Компоненты форматированного отображения Прочие графические компоненты 6-33 Компоненты Swing

34 © Luxoft Training 2013 Компоненты Swing 6-34 Иерархия компонент

35 © Luxoft Training 2013 Компоненты Swing Текстовые компоненты Swing могут быть разделены на три категории: Текстовое поле – поле ввода одной строки. Классы - JTextField, JPasswordField Text area – область текста, состоящая из одной или нескольких строк. Класс - JTextArea Стилизованная text area – отображает отформатированный текст. Классы: JEditorPane, JTextPane 6-35 Текстовые компоненты

36 © Luxoft Training 2013 Компоненты Swing Т.к. все компоненты Swing расширяют компонент JComponent, то они наследуют ряд его свойств и методов Так же каждый компонент может добавлять свой набор свойств и методов 6-36 Общие свойства компонентов

37 © Luxoft Training 2013 Компоненты Swing 6-37 Общие свойства компонентов (JComponent)

38 © Luxoft Training 2013 Компоненты Swing Каждый компонент определяет более специфические свойства Свойства компонента JComboBox : 6-38 Специфические свойства компонентов

39 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-39 Введение в разработку GUI

40 © Luxoft Training 2013 Менеджеры компоновки Swing Менеджер компоновки решает проблемы возникающие из-за: Изменения размеров экранных форм пользователем Разницу в представлении шрифтов в различных ОС Различия в представлениях текста в различных локалях 6-40 Введение

41 © Luxoft Training 2013 Менеджеры компоновки Swing Классы менеджеров компоновки: BorderLayout FlowLayout BoxLayout CardLayout GridLayout GridBagLayout 6-41 Список

42 © Luxoft Training 2013 Менеджеры компоновки Swing При использовании компоновки BorderLayout окно контейнера разделяется на рамку и центральную часть. Компоненты размещаются сверху, снизу, слева, по центру, справа относительно контейнера 6-42 Режим BorderLayout

43 © Luxoft Training 2013 Менеджеры компоновки Swing 6-43 Режим BorderLayout. Пример

44 © Luxoft Training 2013 Компоненты Swing 6-44 Режим BorderLayout. Пример

45 © Luxoft Training 2013 Менеджеры компоновки Swing В режиме FlowLayout компоненты добавляются в окно следующим образом: каждый новый добавленный компонент располагается вслед за предыдущим в направлении слева направо Когда пространство заканчивается, происходит переход на новую строку Это самая простая в использовании схема компановки элементов 6-45 Режим FlowLayout

46 © Luxoft Training 2013 Менеджеры компоновки Swing 6-46 Режим FlowLayout. Пример

47 © Luxoft Training 2013 Layout Manager 6-47 Режим FlowLayout. Пример

48 © Luxoft Training 2013 Layout Manager В режиме BoxLayout компоненты добавляются слева направо или сверху вниз 6-48 Режим BoxLayout

49 © Luxoft Training 2013 Менеджеры компоновки Swing В режиме CardLayout компоненты отображаются в различных карточках. Карточки обычно контролируются выпадающими списками 6-49 Режим CardLayout

50 © Luxoft Training 2013 Менеджеры компоновки Swing В режиме GridLayout компоненты размещаются в ячейках таблицы, параметры которой можно задать с помощью конструкторов класса GridLayout 6-50 Режим GridLayout

51 © Luxoft Training 2013 Менеджеры компоновки Swing При размещении компонент внутри ячеек таблицы все они получают одинаковые размеры Если один из параметров, задающих размерность таблицы, равен нулю, это означает, что соответствующий столбец или строка может содержать любое количество элементов Режим GridLayout

52 © Luxoft Training 2013 Менеджеры компоновки Swing 6-52 Режим GridLayout. Пример

53 © Luxoft Training 2013 Менеджеры компоновки Swing 6-53 Режим GridLayout. Пример

54 © Luxoft Training 2013 Менеджеры компоновки Swing Режим GridBagLayout намного сложнее только что описанного режима GridLayout Он позволяет размещать компоненты разного размера в таблице, задавая при этом для отдельных компонент размеры отступов и количество занимаемых ячеек 6-54 Режим GridBagLayout

55 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-55 Введение в разработку GUI

56 © Luxoft Training 2013 Создание GUI приложения Создание GUI части приложения (то, что относится к представлению, а не к поведению. View часть паттерна MVC) можно вести двумя способами: Программно Используя GUI инструменты 6-56 Введение

57 © Luxoft Training 2013 Создание GUI приложения Вопрос «какой путь предпочтительнее» является открытым и решается индивидуально в каждом случае командой разработки Использование GUI инструментов позволяет создать графические интерфейсы быстрее, но оставляет меньше контроля за сгенерированным кодом 6-57 Что лучше?

58 © Luxoft Training 2013 Создание GUI приложения 6-58 Пример программного создания GUI

59 © Luxoft Training 2013 Создание GUI приложения 6-59 Пример программного создания GUI

60 © Luxoft Training 2013 Создание GUI приложения Окно, созданное в программном коде: 6-60 Пример программного создания GUI

61 © Luxoft Training 2013 Создание GUI приложения Методы установки главного окна JFrame и добавления JLabel : setDefaultCloseOperationJFrame.E XIT_ON_CLOSE) – осуществляет завершение программы, когда нажимается кнопка закрытия 6-61 Использованные ключевые методы

62 © Luxoft Training 2013 Создание GUI приложения setVisible(true) – делает JFrame видимым JLabel добавляется к панели содержимого, не к напрямую к JFrame 6-62 Использованные ключевые методы

63 © Luxoft Training 2013 Создание GUI приложения Задачи: Выполнение кода GUI приложения, такого как визуализация Обработка событий GUI Обработка временных задержек (background) Класс SwingUtilities : SwingUtilites.invokeLater(new Runnable()) 6-63 Ключевые методы

64 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-64 Введение в разработку GUI

65 © Luxoft Training 2013 Обработка событий GUI События – объекты, описывающие происходящие Источники события – некие внешние воздействия, обычно генерируемые пользователем. Например нажатие на кнопку, перемещение окна и т.п События. Определение

66 © Luxoft Training 2013 Обработка событий GUI Обработчик события (event handler) –это метод класса, реализующего специальный интерфейс, называемый слушателем (listener), получающий объект событие Получив событие обработчик расшифровывает его и обрабатывает действия пользователя 6-66 События. Определение

67 © Luxoft Training 2013 Обработка событий GUI Данная техника является реализацией шаблона GoF observer События. Определение

68 © Luxoft Training 2013 Обработка событий GUI Различные действия пользователя могут группироваться в категории, для которых в Swing существуют соответствующие слушатели, обрабатывающие то или иное событие 6-68 События. Определение

69 © Luxoft Training 2013 Обработка событий GUI 6-69 События. Пример

70 © Luxoft Training 2013 Обработка событий GUI Событие может быть послано многим слушателям 6-70 Модель делегирования

71 © Luxoft Training 2013 Обработка событий GUI Обработчик событий связывается (регистрируется) с компонентом, когда он заинтересован в событиях генерируемых этим компонентом 6-71 Модель делегирования

72 © Luxoft Training 2013 Обработка событий GUI Клиентские объекты (хэндлеры) регистрируются с GUI компонентом, который они хотят наблюдать GUI компонент срабатывает только для обработчиков, для которых произошло событие нужного типа Большинство компонент может производить более одного типа событий 6-72 Слушатели

73 © Luxoft Training 2013 Обработка событий GUI 6-73 Слушатели. Пример

74 © Luxoft Training 2013 Обработка событий GUI 6-74 Слушатели. Пример продолжение

75 © Luxoft Training 2013 Обработка событий GUI 6-75 Код обработчика события

76 © Luxoft Training 2013 Обработка событий GUI 6-76 Категории событий

77 © Luxoft Training 2013 Обработка событий GUI Следующие таблицы детализируют категории действия, производимого пользователем, соответствующие ему слушатели, их методы и события 6-77 Модель делегирования

78 © Luxoft Training 2013 Обработка событий GUI Категории слушателей и их интерфейсы: 6-78 Слушатели

79 © Luxoft Training 2013 Обработка событий GUI 6-79 Слушатели

80 © Luxoft Training 2013 Обработка событий GUI 6-80 Слушатели

81 © Luxoft Training 2013 Обработка событий GUI 6-81 Слушатели

82 © Luxoft Training 2013 Обработка событий GUI Рассмотрим комплексный пример в Eclipse 6-82 Слушатели

83 © Luxoft Training 2013 Обработка событий GUI Одно событие может обрабатываться несколькими слушателями, относящимися к разным частым программы В этом случае, обработчики для всех зарегистрированных слушателей будут вызываться при возникновении события 6-83 Несколько слушателей

84 © Luxoft Training 2013 Обработка событий GUI Для того чтобы не реализовывать все методы интерфейса слушателя можно воспользоваться соответствующим классом адаптера и переопределить только нужные методы 6-84 Адаптеры событий

85 © Luxoft Training 2013 Обработка событий GUI Обработчики событий обычно небольшие по размеру. Для них нецелесообразно заводить класс верхнего уровня (класс, определяемый в своем собственном файле) Потому целесообразно использовать вложенные классы и анонимные классы для определения таких обработчиков 6-85 Обработка событий, используя вложенные классы

86 © Luxoft Training 2013 Обработка событий GUI 6-86 Обработка событий, используя вложенные классы

87 © Luxoft Training 2013 Обработка событий GUI 6-87 Обработка событий, используя вложенные классы

88 © Luxoft Training 2013 Обработка событий GUI 6-88 Обработка событий, используя анонимные классы

89 © Luxoft Training 2013 Обработка событий GUI 6-89 Обработка событий, используя анонимные классы

90 © Luxoft Training 2013Упражнение 6-90 Упражнение 18 Bank Application Создание GUI оболочки

91 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки Создание GUI приложения Обработка событий 6-91 Введение в разработку GUI