Введение в GUI. Возможности графических библиотек GUI-библиотеки Java (GUI – для standalone applications или applets) AWT – вызов native-компонентов =>

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



Advertisements
Похожие презентации
Учитель информатики Трашков О.Л.. Окно обычно содержит следующие элементы: Строка заголовка Строка меню Панель инструментов Адресная строка Рабочая область.
Advertisements

1 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки.
Язык программирования Java Дмитриев Андрей Владиславович Май 2007.
Java Advanced Интерфейс пользователя Часть 1. 2 СПбГУ ИТМО Georgiy KorneevJava Advanced / Интерфейс пользователя 1 Содержание 1.Компоненты и контейнеры.
1 Графика в Java Краткое введение в GUI (Graphical User Interface)
Пользовательский интерфейс. Знакомство с операционной системой. Потребительские особенности любой программы часто определяют наглядной, удобной, простой.
Вопрос 1. Для чего необходим графический интерфейс? ОПРОС ДОМАШНЕГО ЗАДАНИЯ: Ответ: Графический интерфейс необходим для реализации интерактивного диалога.
Тема 5. Основы современной технологии программирования Программирование в средах современных информационных систем. Интегрированные системы разработки.
Основные понятия операционной системы Windows. Что такое объект? Любой документ для ОС – объект, любая папка, пустая или содержащая в себе документы или.
Applets Inna Issajeva. Апплеты это маленькие приложения, которые размещаются на серверах Internet, транспортируются клиенту по сети, автоматически устанавливаются.
Среда программирования Visual Basic Среда программирования Visual Basic.
Создание презентаций в Power Point. Слайды в PowerPoint С помощью приложения PowerPoint текстовая и числовая информация легко превращается в красочно.
Методы и средства обеспечения информационной безопасности в системе 1С:Предприятие 8.1 П.Б.Хорев доцент кафедры информационной безопасности РГСУ.
Операционные системы (ОС) WINDOWS. ОС WINDOWS: 1.Реализован принцип «что ты видишь, то и получишь». 2.Используется графический режим работы монитора,
:18 Графический интерфейс операционной системы и приложений.
Объектно-ориентированный язык программирования. Выберите в реальной жизни любой объект (холодильник, магнитофон, машина) и опишите его свойства, методы,
Программное обеспечение компьютера. Компьютер без программного обеспечения и операционной системы – это бесполезный хлам, груда железа.
Среда программирования Visual Basic. Презентацию подготовила учитель информатики МБОУ СОШ 3 г. Светлого Нетесова Наталья Александровна.
:21(C) KaravaevaEL, 2008 Графический интерфейс операционной системы и приложений Ресурс подготовила Караваева Е. Л., учитель МОУ СОШ 5 г.Светлого.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
Транксрипт:

Введение в GUI

Возможности графических библиотек GUI-библиотеки Java (GUI – для standalone applications или applets) AWT – вызов native-компонентов => лишь общие возможности платформ Swing – наследование от AWT, но «легковесность» основных компонентов + полный набор возможностей как в MFC для Win32 + полная реализация ООП (=> гибкость) + авт. смена внешнего вида (L&F: win, motif, any). Но: сложность, требовательность к ресурсам SWT (от IBM) – аналог Swing, но много native-кода => экономичность Общие возможности AWT и Swing Рисование: Graphics, Graphics2D. Изображения (Image), анимации, звук Готовые графические компоненты (extends Component), их размещение на других (которые extends Container), layout managers События, возникающие при действиях пользователя с компонентами Сервисные возможности (см. Toolkit): определение настроек экрана, печать на принтере, clipboard (java.awt.datatransfer); drag-n-drop Дополнительные возможности Swing Контейнеры (внутр. окна, tabs, splits), доп. компоненты для показа (сообщений), редактирования (сложного текста,..), выбора (цветов, файлов, любых объектов: таблицы, деревья, списки, опции Выделение данных из компонентов хранителя данных – Model Double buffering, borders, tooltips, InputVerifier (1.3); undo и т.п. 1

2 Проблемы AWT Сходные элементы в различных ОС могут иметь некоторые различия ОС часто имеют элементы GUI, отсутствующие в других ОС Использование native-методов в AWT приводит к возникновению ошибок на конкретных платформах

3 Технология Swing Элементы GUI отрисовываются в пустых окнах «Нативные» функции используются только для вывода окна, отрисовки и получения информации о действиях пользователя Обладает свойством «легковесности» (lightweight)

4 Особенности Swing Набор элементов GUI более широк, чем в AWT, и может быть еще расширен Сильная привязка к «нативным» методам отсутсвует, что снижает вероятность возникновения ошибок Отображение на различных платформах единообразно

5 Look And Feel Программе можно придать различный вид, изменив «стиль» отрисовки компонентов Есть разработанные «стили» для базовых платформ Существет возможность создания собственных «стилей»

6 Windows

7 Motif

8 Java (Metal)

9 Иерархия классов

10 Иерархия классов. Пакет javax.swing

11 Оконные приложения в Swing Используется класс javax.swing.JFrame Содержимое окна находится на панели, ссылку на которую можно получить вызовом метода getContentPane() Параметрами окна можно управлять

12 class NotHelloWorldPanel extends JPanel { public void paintComponent(Graphics g) { super.paintComponent(g); g.drawString("Not a Hello, World program", MESSAGE_X, MESSAGE_Y); } public static final int MESSAGE_X = 75; public static final int MESSAGE_Y = 100; } Отрисовка компонентов Отрисовка производится в методе paintComponent() Для перерисовки по требованию вызывается метод repaint()

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

14 Двойная буферизация Методы класса JComponent setDoubleBuffered(boolean aFlag) Устанавливает, буферизует ли объект свой вывод boolean isDoubleBuffered() Возвращает булевское значение, показывающее, используется ли двойная буферизация, или нет

15 Pluggable Look And Feel Внешний вид программы может изменяться во время исполнения Перерисовка должна вызываться принудительно String s; switch (value) { case 0: s = "javax.swing.plaf.metal.MetalLookAndFeel"; break; case 1: s = "com.sun.java.swing.plaf.motif.MotifLookAndFeel"; break; case 2: s = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; break; default: s = UIManager.getSystemLookAndFeelClassName(); } UIManager.setLookAndFeel(s); SwingUtilities.updateComponentTreeUI(getContentPane());

16 Работа с графикой java.awt.Graphics2D Класс-наследник класса java.awt.Graphics, обеспечивающий большую функциональность java.awt.geom.* Содержит набор классов работы с графическими примитивами

17 Работа с меню javax.swing.JMenuBar Панель меню в верхней части окна javax.swing.JMenu Меню как таковое javax.swing.JMenuItem Единичный элемент меню javax.swing.JCheckBoxMenuItem Элемент меню «флажок» javax.swing.JRadioButtonMenuItem Элемент меню «радио-кнопка» javax.swing.JPopup Всплывающее меню

Модель обработки событий в Java Примеры событий действие пользователя приход данных (напр., из сети) завершение параллельно идущего процесса; и др. Данные о событии «пакуются» в объект класса *Event Шаблон Observer (Listener) Источник события не знает класса получателя (слушателя) Слушатель реализует интерфейс *Listener Слушатели должны быть зарегистрированы в источнике: add*Listener(*Listener). Также есть remove*Listener(*Listener) 18

19 Некоторые замечания Swing предоставляет более широкие и надежные возможности, чем AWT Эти возможности касаются в основном отрисовки компонентов Модель обработки событий и другие внутренние механизмы приложения относятся к AWT, а не к Swing Некорректно говорить, что Swing заменил AWT Современные средства разработки имеют визуальные редакторы для создания пользовательских интерфейсов

На что обратить внимание в API Обычные, диалоговые окна и апплеты в Swing: Все - RootPaneContainer //позволяет иметь JMenuBar, JToolBar rootPane, layeredPane, glassPane, contentPane. Надо contentPane.add()! setDefaultCloseOperation(int) //dispose, hide, exit, do nothing; т.е. свой listener Диалоги – дочерние! Модальность. JOptionPane – статический доступ С помощью JWindow можно сделать splash-окно при запуске программы Image и Icon: создание и использование Image i = toolkit.getImage(1.jpg); //gif,jpeg,png frame.setIconImage(i); javax.swing.Icon i=new ImageIcon(2.jpg); ((AbstractButton)b).setIcon(i); Некоторые возможности компонентов Подсказки: ((JComponent)c).setToolTipText(Выход); Границы: new TitledBorder(new EtchedBorder(), Адрес); Списки и т.п. надо помещать на JScrollPane: new JScrollPane(new JList()); 20