Презентация на тему "Графический интерфейс пользователя"

Презентация: Графический интерфейс пользователя
Включить эффекты
1 из 55
Ваша оценка презентации
Оцените презентацию по шкале от 1 до 5 баллов
  • 1
  • 2
  • 3
  • 4
  • 5
3.0
1 оценка

Комментарии

Нет комментариев для данной презентации

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


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

Аннотация к презентации

Скачать презентацию (1.04 Мб). Тема: "Графический интерфейс пользователя". Предмет: информатика. 55 слайдов. Для студентов. Добавлена в 2016 году. Средняя оценка: 3.0 балла из 5.

Содержание

  • Презентация: Графический интерфейс пользователя
    Слайд 1

    Лекция14. Графический интерфейс пользователя

  • Слайд 2

    Графические библиотеки

    AWT – платформозависимая, java.awt.* Swing – платформонезависимая, java.swing.* SWT – платформозависимая

  • Слайд 3

    Пользовательский интерфейс

    Java имеет стандартные пакеты для создания интерфейсов пользователя (Graphical User Interfaces). Основные компоненты интерфейса:

  • Слайд 4

    AWT (Abstract Window Toolkit)

    Присутствует во всех реализациях Java Описанный в большинстве Java учебников Адекватная для многих приложений Использует элементы управления, определенные ОС Трудно построить понятный интерфейс import java.awt.*;import java.awt.event.*;

  • Слайд 5

    Swing

    Схожа с AWT Не работает в ранних версиях Java реализаций (Java 1.1 и выше) Намного больше элементов более гибких управления Некоторые элементы управления являются гораздо более сложными Гораздо проще построить понятный интерфейс import javax.swing.*;

  • Слайд 6

    Swing vs. AWT

    Пакет Swing больший, работает медленнее, и сложнее, чем AWT Swing является более гибким и его элементы лучше выглядят Swing vs. AWT несовместимы - нужно использовать любой один пакет Изучение AWT является хорошим началом для Swing Многие из наиболее распространенных элементов управления похожи AWT: Button b = new Button ("OK");Swing: JButton b = new JButton("OK");

  • Слайд 7

    Иерархия классов основных графических компонентов

  • Слайд 8

    Тяжело- и легковесные компоненты

    Тяжеловесные (heavyweight) компоненты Отрисовываются операционной системой Большинство AWT-компонент Легковесные (ligntweight) компоненты Отрисовываются java-кодом Все Swing-компоненты, кроме окон верхнего уровня Тяжеловесные компоненты всегда отрисовываются поверх легковесных

  • Слайд 9

    Java GUI API

  • Слайд 10
  • Слайд 11

    Окна верхнего уровня

    КлассыContainer – это GUI-компоненты, которые используются как контейнеры для других GUI-компонентов Swing: Component, Container, JFrame, JDialog, JApplet, Jpanel JFrame - окно, не содержащее внешних окон JDialog- временное всплывающее окно или сообщение JApplet– апплет JPanel- контейнер, содержащий UI-компонеты или графические элементы Layout managerиспользуется для позиционирования компонентов

  • Слайд 12

    Контейнеры

    Части интерфейса пользователя, содержащие другие компоненты JPanel – панель JFrame – окно приложения JDialog – диалоговое окно JSrollPane – область с полосой прокрутки add(Component component) — добавляет в контейнер элемент component; remove(Component component) — удаляет из контейнера элемент component; removeAll() — удаляет все элементы контейнера; getComponentCount() — возвращает число элементов контейнера.

  • Слайд 13

    Layout Manager

    Left to right, Top to bottom c n s e w FlowLayout GridLayout BorderLayout none, programmer sets x,y,w,h null One at a time CardLayout GridBagLayout JButton

  • Слайд 14

    Пример

    JButton JButton JTextArea

  • Слайд 15

    Combinations

    n JPanel: BorderLayout c JFrame JPanel: FlowLayout JButton JButton JTextArea

  • Слайд 16

    null layout

    JFrame f = new JFrame(“title”); JPanel p = new JPanel( ); JButton b = new JButton(“press me”); b.setBounds(new Rectangle(10,10, 100,50)); p.setLayout(null); // x,y layout p.add(b); f.setContentPane(p); press me

  • Слайд 17

    FlowLayout

    JFrame f = new JFrame(“title”); JPanel p = new JPanel( ); FlowLayout L = new FlowLayout( ); JButton b1 = new JButton(“press me”); JButton b2 = new JButton(“then me”); p.setLayout(L); p.add(b1); p.add(b2); f.setContentPane(p); press me then me

  • Слайд 18

    Окна приложения

    Класс JFrame Конструкторы JFrame(title) Свойства title – заголовок jMenuBar – меню iconImage – иконка окна

  • Слайд 19

    Закрытие окна

    Метод setDefaultCloseOperation(operation) – установить действие при закрытии окна DO_NOTHING_ON_CLOSE HIDE_ON_CLOSE DISPOSE_ON_CLOSE EXIT_ON_CLOSE (JFrame)

  • Слайд 20

    Стандартные диалоги

    Класс JOptionPane Методы showConfirmDialog(…) – да/нет/отмена showInputDialog(…) –ввод текста showMessageDialog(…) – информация showOptionDialog(…) – выбор из списка Параметры parentComponent – родительская компонента message – сообщение optionType – набор кнопок messageType – вид иконки

  • Слайд 21

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

    Методы getXXXPane() – возвращает панель setXXXPane() – устанавливает панель getContentPane(), setContentPane() JButton newButton = new JButton(); getContentPane().add(newButton);

  • Слайд 22

    Компоненты

    Части интерфейса пользователя, не содержащие других компонентов JLabel – метка JButton – кнопка JMenuItem – элемент меню JTextArea – редактор текста Возможности компонентов Генерация событий Обработка ввода пользователя Рамки Отрисовка “в ручную” Поддержка Drag & Drop Компоновка …

  • Слайд 23

    Работа компоновщика

    Размещают компоненты внутри контейнера Интерфейс java.awt.LayoutManager panel.setLayout(new FlowLayout()); Разместить компоненты так, что бы удовлетворялись рекомендации Рекомендации по размеру Dimension minimumSize – минимальный Dimension preferredSize – наилучший Dimension maximumSize -- максимальный

  • Слайд 24

    FlowLayout

    Компоненты выкладываются одна за другой, с переносом строк Свойства alignment – выравнивание LEADING, CENTER, TRAILING vgap/hgap – расстояние по горизонтали / вертикали

  • Слайд 25

    BorderLayout

    Компоненты располагаются по краям Свойства vgap/hgap – расстояние по вертикали / горизонтали

  • Слайд 26

    GridLayout

    Компоненты располагаются в виде таблицы Свойства rows / columns– количество строк / столбцов vgap/hgap – расстояние по вертикали / горизонтали

  • Слайд 27

    BoxLayout

    Выкладывает компоненты горизонтально / вертикально Box.createHorizontalBox() Box.createVerticalBox() Box box = Box.createVerticalBox(); box.add(new JButton("Кнопка")); box.add(Box.createVerticalStrut(10)); box.add(Box.createVerticalGlue());

  • Слайд 28

    Другие компоновщики

    CardLayout – помещает компоненты друг за другом GridBagLayout – помещает компоненты в гибкую таблицу SpringLayout – очень гибкий компоновщик, используется при кодогенерации Запуск компоновщика Автоматически – при изменении размера контейнера Вручную invalidate() – запросить перекомпоновку компоненты и всех ее предков revalidate() – thead-safe invalidate() Обрамление Каждая компонента может иметь обрамление в виде рамки Пакет javax.swing.border Класс Border Метод Component.setBorder(Border)

  • Слайд 29

    Размер обрамления

    Размер обрамления вычитается из размера компоненты Класс Insets Конструктор Insets(left, right, bottom, top) Поля left – отступ слева right – отступ справа bottom – отступ снизу top – отступ сверху

  • Слайд 30

    Типы обрамлений (простые)

    Классы EmptyBorder – пустое место LineBorder – линия EtchedBorder – объемность BevelBorder– выпуклость / вдавленность MatteBorder - Обрамление “набирается” из рисунка

  • Слайд 31

    Типы обрамлений (составные)

    TitledBorder– обрамление с заголовком. Создается на основе другого обрамления CompoundBorder – объединяет два обрамления CompoundBorder(insideBorder, outsideBorder)

  • Слайд 32

    Класс JPanel

    Простейший контейнер Конструктор JPanel(LayoutManager) Свойства layoutManager -- компоновщик

  • Слайд 33

    Класс JLabel

    JLabel - Метка с текстом Конструктор JLabel(text?, icon?) Свойства text – надпись на метке icon – картинка

  • Слайд 34

    JButton - кнопка

    JButton(String text?, Icon icon?) setRolloverIcon(Icon icon) setPressedIcon(Icon icon) setMargin(Insets margin) JToggleButton - кнопка, которая может находиться в двух состояниях: нажатом и отпущенном JCheckBox, JRadioButton – наследники ButtonGroup – взаимоисключающий контейнер

  • Слайд 35

    Визуальные компоненты

    JTextField setText(String text) getText(int offset, int length) JPasswordField set(get)EchoChar(char echo) JTextArea append(String text) insert(String text, int position)

  • Слайд 36

    Панель прокрутки JScrollPane

    Панель с полосами прокрутки Конструктор JScrollPane(Component?, vsbPolicy?, hsbPolicy?)

    _SCROLLBAR_AS_NEEDED _SCROLLBAR_NEVER _SCROLLBAR_ALWAYS getContentPane().add(new JScrollPane(textArea));
  • Слайд 37

    Иконки

    Класс ImageIcon Конструктор ImageIcon(url) – загрузить по URL ImageIcon(file) – загрузить из файла Методы getIconHeight() – высота иконки getIconWidth() – ширина иконки getImage() – платформозависимый рисунок Применение frame.setIconImage(icon.getImage()) new JLable(icon);

  • Слайд 38

    Визуальные компоненты

    JToolBar JComboBox JSlider JTabbedPane JList JProgressBar

  • Слайд 39

    Классификация событий

    Низкоуровневые события Создаются системой на основе действий пользователя Инициатор события – текущая компонента Высокоуровневые события Создаются компонентами на основе других событий Инициатор события – компонента создавшая событие

  • Слайд 40

    Низкоуровневые события

    Ввод пользователя InputEvent – базовый класс KeyEvent – событие клавиатуры MouseEvent – событие мыши MouseWheelEvent – событие колеса прокрутки Изменение состояния компоненты ComponentEvent – изменение видимости / размера / местоположения компонента FocusEvent – изменение фокуса ContainerEvent – добавление / удаление компонент WindowEvent – операции с окнами

  • Слайд 41

    Обработка низкоуровневых событий

    Генерация событий Клавиатурные – для компоненты владеющей фокусом Мыши – для компоненты, над которой находится мышь Прочие – для компоненты с которой произошли Событие ввода может быть поглощено Метод consume()

  • Слайд 42

    Высокоуровневые события

    Примеры ActionEvent – нажатие на кнопку MenuEvent– операции с меню PopupMenuEvent – операции с всплывающим меню …

  • Слайд 43

    Слушатели

    Оповещаются о возникновении события Интерфейсы XXXListener Управление слушателями МетодaddXXXListener(XXXListener listener) – добавить слушателя МетодremoveXXXListener(XXXListener listener) – убрать слушателя

  • Слайд 44

    Создание слушателя

    Реализация слушателя Реализовать интерфейс Добавить слушателя к компоненту Реагировать на события Вспомогательные классы XXXAdapter – для реализации слушателей с несколькими методами

  • Слайд 45

    MouseListener

    Слушатель событий от мыши должен реализовать интерфейс MouseListener. В этом интерфейсе перечислены следующие методы: mouseClicked(MouseEvent event) — выполнен щелчок мышкой на наблюдаемом объекте mouseEntered(MouseEvent event) — курсор мыши вошел в область наблюдаемого объекта mouseExited(MouseEvent event) — курсор мыши вышел из области наблюдаемого объекта mousePressed(MouseEvent event) — кнопка мыши нажата в момент, когда курсор находится над наблюдаемым объектом mouseReleased(MouseEvent event) — кнопка мыши отпущена в момент, когда курсор находится над наблюдаемым объектом

  • Слайд 46

    Слушатели

    FocusListener MouseWheelListener KeyListener ChangeListener WindowListener СomponentListener– смена положения, размера… ActionListener – универсальный слушатель actionPerformed(ActionEvent event)

  • Слайд 47

    ActionListener

    Событие ActionEvent Свойства getActionCommand() – название команды getModifiers() – состояние клавиш-модификаторов getWhen() – когда произошло Слушатель ActionListener Метод actionPerformed(ActionEvent e)

  • Слайд 48

    Действия

    Действие – абстракция действия которое можно произвести Интерфейс Action Методы actionPerformed(ActionEvent) – совершить действие setEnabled(boolean) – запретить / разрешить isEnabled() – проверить разрешение putValue(key, value) – записать значение свойства getValue(key) – прочитать значение свойства

  • Слайд 49

    Свойства действий

    Константы интерфейса Action NAME – название действия SHORT_DESCRIPTION –описание для всплывающих подсказок LONG_DESCRIPTION –описание для контекстной помощи ACTION_COMMAND_KEY – имя команды SMALL_ICON – иконка

  • Слайд 50

    Меню

    Основное меню Класс JMenuBar Раскрывающееся меню Класс JMenu Элементы меню Класс JMenuItem – простой Класс JCheckBoxMenuItem – помечаемый Класс JRadioButtonMenuItem – один из Класс JSeparator – разделитель

  • Слайд 51

    Создание меню

    SimpleWindow(){ super("Окносменю"); setDefaultCloseOperation(EXIT_ON_CLOSE); JMenuBar menuBar = new JMenuBar(); JMenu fileMenu = new JMenu("Файл"); fileMenu.add(new JMenuItem("Новый")); fileMenu.add(new JMenuItem("Открыть", new ImageIcon("1.gif"))); fileMenu.add(new JMenuItem("Сохранить")); fileMenu.addSeparator(); fileMenu.add(new JMenuItem("Выйти")); JMenu editMenu = new JMenu("Правка"); editMenu.add(new JMenuItem("Копировать")); JMenu pasteMenu = new JMenu("Вставить"); pasteMenu.add(new JMenuItem("Избуфера")); pasteMenu.add(new JMenuItem("Изфайла")); editMenu.add(pasteMenu) ;menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(Box.createHorizontalGlue()); menuBar.add(new JLabel(new ImageIcon("2.gif"))); setJMenuBar(menuBar); setSize(250,150);}

  • Слайд 52

    Swing и потоки

    Обработка сообщений и перерисовка интерфейса пользователя происходят в потоке событий (EventThread) Если занять EventThread, GUI “зависнет” С видимыми компонентами можно оперировать только в EventThread GUI рекомендуется создавать в EventThread

  • Слайд 53

    Видимые компоненты

    Компонента считается видимой, если Она добавлена к видимому контейнеру Окна считаются видимой После вызова метода pack() После вызова setVisible(true)

  • Слайд 54

    Исполнение действий в EventThread

    Класс SwingUtilities Методы invokeLater(Runnable)– выполнить метод run()в EventThread invokeAndWait(Runnable) – выполнить метод run()в EventThreadи дождаться окончания

  • Слайд 55

    Используемая литература: • Аллен П., Бамбара Дж. J2EE. Разработка бизнес-приложений.

Посмотреть все слайды

Сообщить об ошибке