Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

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

Содержание

Графические библиотекиAWT – платформозависимая, java.awt.*Swing – платформонезависимая, java.swing.*SWT – платформозависимая
Лекция 14. Графический интерфейс пользователя Графические библиотекиAWT – платформозависимая, java.awt.*Swing – платформонезависимая, java.swing.*SWT – платформозависимая Пользовательский интерфейс Java имеет стандартные пакеты для создания интерфейсов пользователя (Graphical User Interfaces). Основные компоненты интерфейса: AWT (Abstract Window Toolkit)Присутствует во всех реализациях JavaОписанный в большинстве Java учебниковАдекватная SwingСхожа с AWTНе работает в ранних версиях Java реализаций (Java 1.1 и Swing vs. AWTПакет Swing больший, работает медленнее, и сложнее, чем AWTSwing является Иерархия классов основных графических компонентов Тяжело- и легковесные компонентыТяжеловесные (heavyweight) компонентыОтрисовываются операционной системойБольшинство AWT-компонентЛегковесные (ligntweight) компонентыОтрисовываются java-кодомВсе Java GUI API Java GUI API Окна верхнего уровняКлассы Container – это GUI-компоненты, которые используются как контейнеры для КонтейнерыЧасти интерфейса пользователя, содержащие другие компонентыJPanel – панельJFrame – окно приложенияJDialog – Layout ManagerLeft to right,Top to bottomcnsewFlowLayoutGridLayoutBorderLayoutnone,  programmer  sets x,y,w,hnullOne at a timeCardLayoutGridBagLayoutJButton ПримерJButtonJButtonJTextArea CombinationsnJPanel: BorderLayoutcJFrameJPanel: FlowLayoutJButtonJButtonJTextArea null layoutJFrame f = new JFrame(“title”);JPanel p = new JPanel( );JButton b FlowLayoutJFrame f = new JFrame(“title”);JPanel p = new JPanel( );FlowLayout L = Окна приложенияКласс JFrameКонструкторыJFrame(title)Свойстваtitle – заголовокjMenuBar – менюiconImage – иконка окна Закрытие окнаМетодsetDefaultCloseOperation(operation) – установить действие при закрытии окнаDO_NOTHING_ON_CLOSEHIDE_ON_CLOSE DISPOSE_ON_CLOSE EXIT_ON_CLOSE (JFrame) Стандартные диалогиКласс JOptionPaneМетодыshowConfirmDialog(…) – да/нет/отменаshowInputDialog(…) – ввод текстаshowMessageDialog(…) – информацияshowOptionDialog(…) – выбор Панель содержимогоМетодыgetXXXPane() – возвращает панельsetXXXPane() – устанавливает панельgetContentPane(), setContentPane()JButton newButton = new JButton();getContentPane().add(newButton); КомпонентыЧасти интерфейса пользователя, не содержащие других компонентовJLabel – меткаJButton – кнопкаJMenuItem – Работа компоновщикаРазмещают компоненты внутри контейнераИнтерфейс java.awt.LayoutManagerpanel.setLayout(new FlowLayout());Разместить компоненты так, что бы удовлетворялись FlowLayoutКомпоненты выкладываются одна за другой, с переносом строкСвойстваalignment – выравнивание LEADING, CENTER, BorderLayoutКомпоненты располагаются по краямСвойстваvgap / hgap – расстояние по вертикали / горизонтали GridLayoutКомпоненты располагаются в виде таблицыСвойстваrows / columns – количество строк / столбцовvgap BoxLayoutВыкладывает компоненты горизонтально / вертикальноBox.createHorizontalBox()Box.createVerticalBox()Box box = Box.createVerticalBox();box.add(new JButton( Другие компоновщикиCardLayout – помещает компоненты друг за другомGridBagLayout – помещает компоненты в Размер обрамленияРазмер обрамления вычитается из размера компонентыКласс InsetsКонструктор Insets(left, right, bottom, top)Поляleft Типы обрамлений (простые)КлассыEmptyBorder – пустое местоLineBorder – линияEtchedBorder – объемностьBevelBorder – выпуклость Типы обрамлений (составные)TitledBorder – обрамление с заголовком. Создается на основе другого обрамленияCompoundBorder Класс JPanelПростейший контейнерКонструкторJPanel(LayoutManager)СвойстваlayoutManager -- компоновщик Класс JLabelJLabel - Метка с текстомКонструкторJLabel(text?, icon?)Свойстваtext – надпись на меткеicon – картинка JButton - кнопкаJButton(String text?, Icon icon?)setRolloverIcon(Icon icon)setPressedIcon(Icon icon)setMargin(Insets margin)JToggleButton - кнопка, которая Визуальные компонентыJTextFieldsetText(String text)getText(int offset, int length)JPasswordFieldset(get)EchoChar(char echo)JTextAreaappend(String text)insert(String text, int position) Панель прокрутки JScrollPaneПанель с полосами прокруткиКонструкторJScrollPane(Component?, vsbPolicy?, hsbPolicy?)_SCROLLBAR_AS_NEEDED _SCROLLBAR_NEVER_SCROLLBAR_ALWAYSgetContentPane().add(new JScrollPane(textArea)); ИконкиКласс ImageIconКонструкторImageIcon(url) – загрузить по URLImageIcon(file) – загрузить из файлаМетодыgetIconHeight() – высота Визуальные компонентыJToolBarJComboBoxJSliderJTabbedPaneJListJProgressBar Классификация событийНизкоуровневые событияСоздаются системой на основе действий пользователяИнициатор события – текущая компонентаВысокоуровневые Низкоуровневые событияВвод пользователяInputEvent – базовый классKeyEvent – событие клавиатурыMouseEvent – событие мышиMouseWheelEvent Обработка низкоуровневых событийГенерация событийКлавиатурные – для компоненты владеющей фокусомМыши – для компоненты, Высокоуровневые событияПримерыActionEvent – нажатие на кнопкуMenuEvent – операции с менюPopupMenuEvent – операции с всплывающим меню… СлушателиОповещаются о возникновении событияИнтерфейсы XXXListenerУправление слушателямиМетод addXXXListener(XXXListener listener) – добавить слушателяМетод removeXXXListener(XXXListener listener) – убрать слушателя Создание слушателяРеализация слушателяРеализовать интерфейсДобавить слушателя к компонентуРеагировать на событияВспомогательные классыXXXAdapter – для MouseListenerСлушатель событий от мыши должен реализовать интерфейс MouseListener. В этом интерфейсе перечислены СлушателиFocusListenerMouseWheelListenerKeyListenerChangeListenerWindowListenerСomponentListener – смена положения, размера…ActionListener – универсальный слушательactionPerformed(ActionEvent event) ActionListenerСобытие ActionEventСвойстваgetActionCommand() – название командыgetModifiers() – состояние клавиш-модификаторовgetWhen() – когда произошлоСлушатель ActionListenerМетод actionPerformed(ActionEvent e) ДействияДействие – абстракция действия которое можно произвестиИнтерфейс ActionМетодыactionPerformed(ActionEvent) – совершить действиеsetEnabled(boolean) – Свойства действийКонстанты интерфейса ActionNAME – название действияSHORT_DESCRIPTION –описание для всплывающих подсказокLONG_DESCRIPTION –описание МенюОсновное менюКласс JMenuBarРаскрывающееся менюКласс JMenuЭлементы менюКласс JMenuItem – простойКласс JCheckBoxMenuItem – помечаемыйКласс Создание менюSimpleWindow(){super( Swing и потокиОбработка сообщений и перерисовка интерфейса пользователя происходят в потоке событий Видимые компонентыКомпонента считается видимой, еслиОна добавлена к видимому контейнеруОкна считаются видимойПосле вызова метода pack()После вызова setVisible(true) Исполнение действий в EventThreadКласс SwingUtilitiesМетоды invokeLater(Runnable) – выполнить метод run() в EventThreadinvokeAndWait(Runnable) Используемая литература:• Аллен П., Бамбара Дж. J2EE. Разработка бизнес-приложений.
Слайды презентации

Слайд 2 Графические библиотеки
AWT – платформозависимая, java.awt.*
Swing – платформонезависимая, java.swing.*
SWT

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

– платформозависимая


Слайд 3 Пользовательский интерфейс
Java имеет стандартные пакеты для создания

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

интерфейсов пользователя (Graphical User Interfaces).




Основные компоненты интерфейса:



Слайд 4 AWT (Abstract Window Toolkit)
Присутствует во всех реализациях Java
Описанный

AWT (Abstract Window Toolkit)Присутствует во всех реализациях JavaОписанный в большинстве Java

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

определенные ОС
Трудно построить понятный интерфейс

import java.awt.*; import java.awt.event.*;


Слайд 5 Swing
Схожа с AWT
Не работает в ранних версиях Java

SwingСхожа с AWTНе работает в ранних версиях Java реализаций (Java 1.1

реализаций (Java 1.1 и выше)
Намного больше элементов более гибких

управления
Некоторые элементы управления являются гораздо более сложными
Гораздо проще построить понятный интерфейс

import javax.swing.*;


Слайд 6 Swing vs. AWT
Пакет Swing больший, работает медленнее, и

Swing vs. AWTПакет Swing больший, работает медленнее, и сложнее, чем AWTSwing

сложнее, чем AWT
Swing является более гибким и его элементы

лучше выглядят
Swing vs. AWT несовместимы - нужно использовать любой один пакет
Изучение AWT является хорошим началом для Swing
Многие из наиболее распространенных элементов управления похожи

AWT: Button b = new Button ("OK"); Swing: JButton b = new JButton("OK");


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

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

Слайд 8 Тяжело- и легковесные компоненты
Тяжеловесные (heavyweight) компоненты
Отрисовываются операционной системой
Большинство

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

AWT-компонент

Легковесные (ligntweight) компоненты
Отрисовываются java-кодом
Все Swing-компоненты, кроме окон верхнего уровня

Тяжеловесные

компоненты всегда отрисовываются поверх легковесных


Слайд 9 Java GUI API

Java GUI API

Слайд 10 Java GUI API

Java GUI API

Слайд 11 Окна верхнего уровня
Классы Container – это GUI-компоненты, которые

Окна верхнего уровняКлассы Container – это GUI-компоненты, которые используются как контейнеры

используются как контейнеры для других GUI-компонентов

Swing: Component, Container, JFrame,

JDialog, JApplet, Jpanel
JFrame - окно, не содержащее внешних окон
JDialog - временное всплывающее окно или сообщение
JApplet – апплет
JPanel - контейнер, содержащий UI-компонеты или графические элементы

Layout manager используется для позиционирования компонентов


Слайд 12 Контейнеры
Части интерфейса пользователя, содержащие другие компоненты
JPanel – панель
JFrame

КонтейнерыЧасти интерфейса пользователя, содержащие другие компонентыJPanel – панельJFrame – окно приложенияJDialog

– окно приложения
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

Layout ManagerLeft to right,Top to bottomcnsewFlowLayoutGridLayoutBorderLayoutnone, programmer sets x,y,w,hnullOne at a timeCardLayoutGridBagLayoutJButton

x,y,w,h
null
One at a time
CardLayout
GridBagLayout
JButton


Слайд 14 Пример
JButton
JButton
JTextArea

ПримерJButtonJButtonJTextArea

Слайд 15 Combinations
n

JPanel: BorderLayout


c
JFrame
JPanel: FlowLayout
JButton
JButton
JTextArea

CombinationsnJPanel: BorderLayoutcJFrameJPanel: FlowLayoutJButtonJButtonJTextArea

Слайд 16 null layout
JFrame f = new JFrame(“title”);
JPanel p =

null layoutJFrame f = new JFrame(“title”);JPanel p = new JPanel( );JButton

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

FlowLayoutJFrame f = new JFrame(“title”);JPanel p = new JPanel( );FlowLayout L

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 –

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

иконка окна


Слайд 19 Закрытие окна
Метод
setDefaultCloseOperation(operation) – установить действие при закрытии окна
DO_NOTHING_ON_CLOSE
HIDE_ON_CLOSE

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


DISPOSE_ON_CLOSE
EXIT_ON_CLOSE (JFrame)


Слайд 20 Стандартные диалоги
Класс JOptionPane
Методы
showConfirmDialog(…) – да/нет/отмена
showInputDialog(…) – ввод текста
showMessageDialog(…)

Стандартные диалогиКласс JOptionPaneМетодыshowConfirmDialog(…) – да/нет/отменаshowInputDialog(…) – ввод текстаshowMessageDialog(…) – информацияshowOptionDialog(…) –

– информация
showOptionDialog(…) – выбор из списка
Параметры
parentComponent – родительская компонента
message

– сообщение
optionType – набор кнопок
messageType – вид иконки

Слайд 21 Панель содержимого
Методы
getXXXPane() – возвращает панель
setXXXPane() – устанавливает панель
getContentPane(),

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

setContentPane()


JButton newButton = new JButton();
getContentPane().add(newButton);


Слайд 22 Компоненты
Части интерфейса пользователя, не содержащие других компонентов
JLabel –

КомпонентыЧасти интерфейса пользователя, не содержащие других компонентовJLabel – меткаJButton – кнопкаJMenuItem

метка
JButton – кнопка
JMenuItem – элемент меню
JTextArea – редактор текста

Возможности

компонентов
Генерация событий
Обработка ввода пользователя
Рамки
Отрисовка “в ручную”
Поддержка Drag & Drop
Компоновка




Слайд 23 Работа компоновщика
Размещают компоненты внутри контейнера
Интерфейс java.awt.LayoutManager

panel.setLayout(new FlowLayout());

Разместить компоненты

Работа компоновщикаРазмещают компоненты внутри контейнераИнтерфейс java.awt.LayoutManagerpanel.setLayout(new FlowLayout());Разместить компоненты так, что бы

так, что бы удовлетворялись рекомендации
Рекомендации по размеру
Dimension minimumSize –

минимальный
Dimension preferredSize – наилучший
Dimension maximumSize -- максимальный


Слайд 24 FlowLayout
Компоненты выкладываются одна за другой, с переносом строк
Свойства
alignment

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

– выравнивание
LEADING, CENTER, TRAILING
vgap / hgap – расстояние

по горизонтали / вертикали


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

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

по вертикали / горизонтали



Слайд 26 GridLayout
Компоненты располагаются в виде таблицы
Свойства
rows / columns –

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

количество строк / столбцов
vgap / hgap – расстояние по

вертикали / горизонтали


Слайд 27 BoxLayout
Выкладывает компоненты горизонтально / вертикально
Box.createHorizontalBox()
Box.createVerticalBox()

Box box = Box.createVerticalBox();
box.add(new

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

JButton("Кнопка"));
box.add(Box.createVerticalStrut(10));
box.add(Box.createVerticalGlue());


Слайд 28 Другие компоновщики
CardLayout – помещает компоненты друг за другом
GridBagLayout

Другие компоновщикиCardLayout – помещает компоненты друг за другомGridBagLayout – помещает компоненты

– помещает компоненты в гибкую таблицу
SpringLayout – очень гибкий

компоновщик, используется при кодогенерации

Запуск компоновщика
Автоматически – при изменении размера контейнера
Вручную
invalidate() – запросить перекомпоновку компоненты и всех ее предков
revalidate() – thead-safe invalidate()

Обрамление
Каждая компонента может иметь обрамление в виде рамки
Пакет javax.swing.border
Класс Border
Метод
Component.setBorder(Border)


Слайд 29 Размер обрамления
Размер обрамления вычитается из размера компоненты
Класс Insets
Конструктор

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

Insets(left, right, bottom, top)
Поля
left – отступ слева
right – отступ

справа
bottom – отступ снизу
top – отступ сверху


Слайд 30 Типы обрамлений (простые)
Классы
EmptyBorder – пустое место
LineBorder – линия
EtchedBorder

Типы обрамлений (простые)КлассыEmptyBorder – пустое местоLineBorder – линияEtchedBorder – объемностьBevelBorder –

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

из рисунка


Слайд 31 Типы обрамлений (составные)
TitledBorder – обрамление с заголовком. Создается

Типы обрамлений (составные)TitledBorder – обрамление с заголовком. Создается на основе другого

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


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

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

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

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

надпись на метке
icon – картинка



Слайд 34 JButton - кнопка
JButton(String text?, Icon icon?)
setRolloverIcon(Icon icon)
setPressedIcon(Icon icon)
setMargin(Insets

JButton - кнопкаJButton(String text?, Icon icon?)setRolloverIcon(Icon icon)setPressedIcon(Icon icon)setMargin(Insets margin)JToggleButton - кнопка,

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

Визуальные компонентыJTextFieldsetText(String text)getText(int offset, int length)JPasswordFieldset(get)EchoChar(char echo)JTextAreaappend(String text)insert(String text, int position)

text, int position)


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

Панель прокрутки JScrollPaneПанель с полосами прокруткиКонструкторJScrollPane(Component?, vsbPolicy?, hsbPolicy?)_SCROLLBAR_AS_NEEDED _SCROLLBAR_NEVER_SCROLLBAR_ALWAYSgetContentPane().add(new JScrollPane(textArea));


_SCROLLBAR_NEVER
_SCROLLBAR_ALWAYS

getContentPane().add(new JScrollPane(textArea));


Слайд 37 Иконки
Класс ImageIcon
Конструктор
ImageIcon(url) – загрузить по URL
ImageIcon(file) – загрузить

ИконкиКласс ImageIconКонструкторImageIcon(url) – загрузить по URLImageIcon(file) – загрузить из файлаМетодыgetIconHeight() –

из файла
Методы
getIconHeight() – высота иконки
getIconWidth() – ширина иконки
getImage() –

платформозависимый рисунок
Применение
frame.setIconImage(icon.getImage())
new JLable(icon);


Слайд 38 Визуальные компоненты
JToolBar
JComboBox
JSlider
JTabbedPane
JList
JProgressBar

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

Слайд 39 Классификация событий
Низкоуровневые события
Создаются системой на основе действий пользователя
Инициатор

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

события – текущая компонента
Высокоуровневые события
Создаются компонентами на основе других

событий
Инициатор события – компонента создавшая событие


Слайд 40 Низкоуровневые события
Ввод пользователя
InputEvent – базовый класс
KeyEvent – событие

Низкоуровневые событияВвод пользователяInputEvent – базовый классKeyEvent – событие клавиатурыMouseEvent – событие

клавиатуры
MouseEvent – событие мыши
MouseWheelEvent – событие колеса прокрутки
Изменение состояния

компоненты
ComponentEvent – изменение видимости / размера / местоположения компонента
FocusEvent – изменение фокуса
ContainerEvent – добавление / удаление компонент
WindowEvent – операции с окнами


Слайд 41 Обработка низкоуровневых событий
Генерация событий
Клавиатурные – для компоненты владеющей

Обработка низкоуровневых событийГенерация событийКлавиатурные – для компоненты владеющей фокусомМыши – для

фокусом
Мыши – для компоненты, над которой находится мышь
Прочие –

для компоненты с которой произошли
Событие ввода может быть поглощено
Метод consume()


Слайд 42 Высокоуровневые события
Примеры
ActionEvent – нажатие на кнопку
MenuEvent – операции

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

с меню
PopupMenuEvent – операции с всплывающим меню



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

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

– добавить слушателя
Метод removeXXXListener(XXXListener listener) – убрать слушателя


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

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

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


Слайд 45 MouseListener
Слушатель событий от мыши должен реализовать интерфейс MouseListener.

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

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

event)




Слайд 47 ActionListener
Событие ActionEvent
Свойства
getActionCommand() – название команды
getModifiers() – состояние клавиш-модификаторов
getWhen()

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

– когда произошло
Слушатель ActionListener
Метод actionPerformed(ActionEvent e)


Слайд 48 Действия
Действие – абстракция действия которое можно произвести
Интерфейс Action
Методы
actionPerformed(ActionEvent)

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

– совершить действие
setEnabled(boolean) – запретить / разрешить
isEnabled() – проверить

разрешение
putValue(key, value) – записать значение свойства
getValue(key) – прочитать значение свойства


Слайд 49 Свойства действий
Константы интерфейса Action
NAME – название действия
SHORT_DESCRIPTION –описание

Свойства действийКонстанты интерфейса ActionNAME – название действияSHORT_DESCRIPTION –описание для всплывающих подсказокLONG_DESCRIPTION

для всплывающих подсказок
LONG_DESCRIPTION –описание для контекстной помощи
ACTION_COMMAND_KEY – имя

команды
SMALL_ICON – иконка



Слайд 50 Меню
Основное меню
Класс JMenuBar
Раскрывающееся меню
Класс JMenu
Элементы меню
Класс JMenuItem –

МенюОсновное менюКласс JMenuBarРаскрывающееся менюКласс JMenuЭлементы менюКласс JMenuItem – простойКласс JCheckBoxMenuItem –

простой
Класс 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

Создание менюSimpleWindow(){super(

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 и потоки
Обработка сообщений и перерисовка интерфейса пользователя

Swing и потокиОбработка сообщений и перерисовка интерфейса пользователя происходят в потоке

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

видимыми компонентами можно оперировать только в EventThread
GUI рекомендуется создавать в EventThread


Слайд 53 Видимые компоненты
Компонента считается видимой, если
Она добавлена к видимому

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

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


Слайд 54 Исполнение действий в EventThread
Класс SwingUtilities
Методы
invokeLater(Runnable) – выполнить

Исполнение действий в EventThreadКласс SwingUtilitiesМетоды invokeLater(Runnable) – выполнить метод run() в

метод run() в EventThread
invokeAndWait(Runnable) – выполнить метод run() в

EventThread и дождаться окончания


  • Имя файла: graficheskiy-interfeys-polzovatelya.pptx
  • Количество просмотров: 116
  • Количество скачиваний: 0