- •JAVA-ТЕХНОЛОГИЯ
- •Базовый инструментарий работы с GUI –
- •Схема иерархии классов AWT (фрагмент)
- •Иерархия классов AWT: класс Component
- •Иерархия классов AWT: класс Container
- •Размещение подкомпонент в контейнере AWT
- •AWT: пример (слайд 1 / 6 )
- •AWT: пример (слайд 2 / 6 )
- •AWT: пример (слайд 3 / 6 )
- •AWT: пример (слайд 4 / 6 )
- •AWT: пример (слайд 5 / 6 )
- •AWT: пример (слайд 6 / 6 )
- •Пояснения к примеру на AWT (слайд 1)
- •Пояснения к примеру на AWT (слайды 2 - 5)
- •Пояснения к примеру на AWT (слайды 2 – 6)
- •Некоторые элементы управления (controls) AWT
- •Элементы управления AWT (продолжение)
- •Обзор подпакетов java.awt
AWT: пример (слайд 5 / 6 )
Button b4 = new Button("Refresh");
//кнопка “Refresh” b4.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e)
{
Component p =
((Button)e.getSource()). getParent();
p.setBackground(Color.lightGray);
p.repaint();
}});
//При нажатии кнопки – перерисовка всей картинки
(C)В.О. Сафонов. 2013
AWT: пример (слайд 6 / 6 )
//размещение кнопок – по “странам света” f.add(b1, BorderLayout.WEST);
f.add(b2, BorderLayout.EAST); f.add(b3, BorderLayout.NORTH); f.add(b4, BorderLayout.SOUTH);
//визуализация всей картинки f.setVisible(true);
}// main
}// FrameUser
(C)В.О. Сафонов. 2013
Пояснения к примеру на AWT (слайд 1)
Создается новый Frame с заголовком “My frame”; устанавливаются его начальные размеры (200x200). В дальнейшем размер фрейма можно изменять мышкой
Вызов f.addNotify() очень важен – он связывает фрейм (как самый внешний GUI-элемент всей картины) с его native- представлением (peer) – окном с заголовком, таким образом, что при действиях над peer событие будет передано фрейму f. При отсутствии вызова addNotify фрейм f не будет реагировать на закрытие окна пользователем через пункт меню Close (Alt- F4).
Уточнение: для Java 1.5 (Windows) – не требуется; для Java 1.3 (Solaris) – требуется.
Благодаря использованию WindowAdapter, нет необходимости определять методы-реакции на все возможные события, связанные с окном фрейма. Достаточно лишь определить тот из них, который нам необходим, - реакцию на событие закрытия окна по “Close”. Имя события – WindowClosing (не путать с
WindowClosed)
System.exit(0) - выход из Java-приложения с кодом завершения
0 (C) В.О. Сафонов. 2013
(по аналогии с C)
Пояснения к примеру на AWT (слайды 2 - 5)
Создаются 4 кнопки (Button) b1, b2, b3, b4 со следующими функциями:
-нажатие b1 (“Yes”) окрашивает всю картинку в зеленый звет
-нажатие b2 (“No”) окрашивает всю картинку в красный цвет
-нажатие b3 (“Cancel”), как и закрытие окна фрейма, приводит к завершению Java-приложения и к стиранию картинки
-нажатие b4 (“Refresh”) восстанавливает исходный цвет всей картинки – светло-серый (lightGray)
Обработка события нажатия кнопки:
-e.getSource() – ссылка на источник события (кнопку)
-метод c.getParent() возвращает ссылку на компоненту-
родителя для кнопки, т.е. на фрейм f.
(C) В.О. Сафонов. 2013
Пояснения к примеру на AWT (слайды 2 – 6)
p.setBackground( c ); - установка цвета фона для компоненты p
p.repaint(); - перерисовка компоненты p
Метод add добавляет кнопку к фрейму-родителю. В его вызовах уточняется способ размещения кнопок – BorderLayout.
Явное указание способа размещения компоненты настоятельно рекомендуется (иначе для Frame и Panel результат будет разным)
p.setVisible(true); - визуализация компоненты p (@since 1.1)
Компиляция и запуск примера:
javac FrameUser.java java FrameUser
(C) В.О. Сафонов. 2013
Некоторые элементы управления (controls) AWT
CheckBox
List
Menu, MenuBar, MenuItem
(C) В.О. Сафонов. 2013
Элементы управления AWT (продолжение)
Choice
Label
TextField
TextArea, FileDialog, ScrollBar, ScrollPane
(C) В.О. Сафонов. 2013
Обзор подпакетов java.awt
java.awt.сolor – управление цветовыми пространствами (RGB, HSV, CMYK и др.)
java.awt.datatransfer – поддержка передачи данных между приложениями и внутри приложения (Copy/Cut/Paste, MIME)
java.awt.dnd – поддержка парадигмы Drag-and-Drop для взаимодействия двух объектов, связанных с GUI-элементами
java.awt.event – управление событиями в AWT java.awt.font – управление шрифтами в AWT
java.awt.geom – классы пакета Java2D для управления двумерными геометрическими объектами (пересечение и включение линий и фигур, аффинные преобразования и др.)
|
java.awt.im, java.awt.im.spi – поддержка реализации |
|
разнообразных режимов (методов) ввода текста в элементы |
|
управления AWT |
|
java.awt.image – создание и модификация изображений (цвета, |
|
буферизация, нотификация о ходе рисования, операции и др.) |
|
java.awt.print – абстракция процесса печати (бумага, книга, |
|
(C) В.О. Сафонов. 2013 |
|
задание для печати и др.) |
Q&A
Вопросы?
(C) В.О. Сафонов. 2013
