В классе component собраны общие методы работы с любым компонентом графического интерфейса пользователя. Этот класс — центр библиотеки AWT. Класс Jcomponent - для Swing
Каждый компонент перед выводом на экран помещается в контейнер (container). Контейнер "знает", как разместить компоненты на экране. Разумеется, в языке Java контейнер — это объект класса Container или всякого его расширения. Прямой наследник этого класса — класс jcomponent — вершина иерархии многих классов библиотеки Swing.
Создав компонент — объект класса Component или его расширения, следует добавить его к предварительно созданному объекту класса container или его расширения одним из методов add ().
Класс Container сам является невидимым компонентом, он расширяет класс Component. Таким образом, в контейнер наряду с компонентами можно помещать контейнеры, в которых находятся какие-то другие компоненты, достигая тем самым большой гибкости расположения компонентов.
Вопрос 42. Jframe — в иерархии объектов графики.
Ответы к экзамену по программированию часть 5 (вопр. 57-69)
57. События мышки. Общая схема обработки событий мышки:
· События мышки возникают, когда нажимаются кнопки, или вращается колесико, или мышка перемещается.
· Задача: "сфокусировать" приложение на нужном компоненте
Схема обработки событий:
· Источник события
· Слушатель события
· Обработчик события
o Источник передает события зарегистрированным слушателям
o Слушатель организует обработку (самостоятельно или вызовом специальных методов-обработчиков)
58. Методы интерфейса MouseListener и их назначение:
Интерфейс listener для получения событий, связанных с мышкой:
void mouseClicked(MouseEvent e) - кнопка мыши была нажата (нажата и отпущена) на компоненте
void mouseEntered(MouseEvent e) - Вызывается, когда мышь входит в компонент
void mouseExited(MouseEvent e) - Вызывается, когда мышь выходит из компонента
void mousePressed(MouseEvent e) - кнопка мыши была нажата на компоненте
void mouseReleased(MouseEvent e)- кнопка мыши была отпущена на компоненте
59. Методы интерфейса MouseMotionListener:
Интерфейс для отслеживания перемещений и перетаскиваний мыши:
void mouseDragged(MouseEvent e)- кнопка мыши нажата и мышь перемещают
void mouseMoved(MouseEvent e)- курсор мыши был передвинут без нажатий на кнопки мыши
60. Методы класса MouseEvent. Получение координат события:
int getButton()- Возвращает номер нажатой кнопки
int getClickCount()- Возвращает кол-во щелчков мыши, связанных с данным событием
Point getLocationOnScreen()- Возвращает координаты (x,y) события
int getModifiersEx()- Возвращает расширенную маску модификатора для этого события
Point getPoint()- Возвращает координаты (x,y) позиции мыши, когда событие произошло
int getX()- Возвращает координату x позиции мыши, когда событие произошло
компонента
int getY()- Возвращает координату y позиции мыши, когда событие произошло
61. Управляющие элементы графического интерфейса – внешний вид и назначение:
Управляющие элементы представлены следующими классами: Button (кнопка), Checkbox (кнопка с независимой фиксацией), Choice (раскрывающийся список Windows), Label (строка), List (список выбора Windows) и Scrollbar (полоса прокрутки). Это достаточно простые классы, наследуемые от абстрактного класса Component напрямую.
Однако в составе java.awt имеются классы интерфейсных элементов, имеющие промежуточного предка. Хорошим примером тому является класс Panel для создания различных панелей. У него имеется промежуточный абстрактный класс-предок Container, служащий родоначальником многих классов-контейнеров, способных содержать в себе другие элементы интерфейса. От этого же класса наследуется класс окна Window, представляющий на экране простейшее окно без меню и рамки. У этого класса есть два часто используемых потомка: Dialog, название которого говорит само за себя, и Frame - стандартное окно Windows. Еще один промежуточный класс TextComponent порождает два полезнейших в работе класса - TextField (аналог строки ввода Windows) и многострочное окно текстового ввода TextArea. Особняком от всех элементов стоит класс Canvas. Его визуальное представление - пустой квадрат, на котором можно выполнять рисование и который может обрабатывать события нажатия кнопок мыши.
62. Кнопка. Состояния кнопки. События кнопки, их обработка и идентификация:
Компонент Button – кнопка стандартного для данной графической системы вида с надписью, умеющая реагировать на щелчок кнопки мыши – при нажатии она «вдавливается» в плоскость контейнера, при отпускании – становится «выпуклой».
1 – обычная кнопка, 2 – кнопка в фокусе (активный объект), 3 – кнопка нажата.
Если приложению требуется выполнять какие-то действия, связанные с нажатием кнопок, класс программы должен реализовывать интерфейс ActionListener и зарегистрировать слушатель события кнопки, вызывая метод класса javax.swing.AbstractButton– addActionListener().
· кнопки – элементы JButton
· Кнопка – текст на кнопке – команда (текст)
· Нажатие на кнопку - событие ActionEvent
· Слушатель события – ActionListener
· Обработчиксобытия – actionPerformed(ActionEvent e)
63. Структура программы, имеющей интерфейс с двумя кнопками:
private Button button1;
private Button button2; // задаемкнопкивклассе
this.add(button1);
this.add(button2); // добавляемвплоскостьконтента
if (event.target == button1) { // еслинажатакнопка 1
Graphics g = this.getGraphics();
Rectangle r = this.bounds();
this.setBackground(Color.black); // заливаемфончерным
g.setColor(this.getBackground());
return true;}
else // иначе
if (event.target == button2){ // еслинажата 2
Graphics g = this.getGraphics();
Rectangle r = this.bounds();
this.setBackground(Color.white); // заливкабелая
g.setColor(this.getBackground());
return true; }
else returnsuper.action(event, arg); }
64. Элементы интерфейса «Условие» («флажок») и его конструкторы:
JCheckBox – это название класса JavaSwing, который представляет компонент-флажок или чекбокс. Что есть флажок или чекбокс? Это компонент, который имеет два состояния включен и выключен. Причем одно состояние естественно исключает другое. Соответствующее состояние компонента JCheckBox показывается галочкой. Если JCheckBox находится во включенном состоянии – галочка отображается, если в выключенном – галочки нет.
Конструкторы:
JCheckBox NAME = newJCheckBox( метка/иконка/выбрано/ не выбрано);
(иконка — изображение формата jpeg, gif, png, представленное как массив байтов).