48248 (597388), страница 3

Файл №597388 48248 (Программирование графики и обработка событий) 3 страница48248 (597388) страница 32016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

Таблица 1. Поля класса GridBagConstraints

Поле

Значение

anchor

Направление размещения компонента в контейнере. Константы:

CENTER, NORTH, EAST, NORTHEAST, SOUTHEAST, SOUTH, SOUTHWEST, WEST, и NORTHWEST; no умолчанию CENTER

fill

Растяжение компонента для заполнения ячейки. Константы: NONE, HORIZONTAL, VERTICAL, BOTH; ПО умолчанию NONE

gridheight

Количество ячеек в колонке, занимаемых компонентом. Целое типа int, по умолчанию 1. Константа REMAINDER означает, что компонент займет остаток колонки, RELATIVE — будет следующим по порядку в колонке

gridwidth

Количество ячеек в строке, занимаемых компонентом. Целое типа int, по умолчанию 1. Константа REMAINDER означает, что компонент займет остаток строки, RELATIVE — будет следующим в строке по порядку

gridx

Номер ячейки в строке. Самая левая ячейка имеет номер 0. По умолчанию константа RELATIVE, что означает: следующая по порядку

gridy

Номер ячейки в столбце. Самая верхняя ячейка имеет номер 0. По умолчанию константа RELATIVE, что означает: следующая по порядку

insets

Поля в контейнере. Объект класса insets; по умолчанию объект с нулями

ipadx, ipady

Горизонтальные и вертикальные поля вокруг компонентов; по умолчанию 0

weightx,

weighty

Пропорциональное растяжение компонентов при изменении размера контейнера; по умолчанию 0,0

Как правило, объект класса GridBagConstraints создается конструктором по умолчанию, затем значения нужных полей меняются простым присваиванием новых значений, например:

GridBagConstraints gbc = new GridBagConstraints();

gbc.weightx = 1.0;

gbc.gridwidth = GridBagConstraints.REMAINDER;

gbc.gridheight =2;

После создания объекта gbc класса GridBagConstraints менеджеру размещения указывается, что при помещении компонента comp в контейнер следует применять правила, занесенные в объект gbc. Для этого применяется метод

add(Component comp, GridBagConstraints gbc)

Итак, схема применения менеджера GridBagLayout такова:

GridBagLayout gbl = new GridBagLayout(); // Создаем менеджер

setLayout(gbl); // Устанавливаем его в контейнер

// Задаем правила размещения по умолчанию

GridBagConstraints с = new GridBagConstraints();

Button b2 = new Button(); // Создаем компонент

c.gridwidth =2; // Меняем правила размещения

add(bl, с); // Помещаем компонент b2 в контейнер по указанным правилам

//размещения с

Button b2 = new Button(); // Создаем следующий компонент

c.gridwidth = 1; // Меняем правила для его размещения

add(b2, с); // Помещаем в контейнер

и т.д.


Приложение 5. Обработка событий.

Java 2 использует хорошо структурированную, функционально полную и очень логичную модель обработки событий, впервые реализованную в JDK 1.1. Иерархия классов событий имеет вид:

 Object

 EventObject

 AWTEvent

 ActionEvent

 AdjustmentEvent

 ItemEvent

 TextEvent

 ComponentEvent

 ContainerEvent

 FocusEvent

 WindowEvent

 PaintEvent

 InputEvent

 KeyEvent

 MouseEvent

Классы и интерфейсы для работы с делегированными событиями расположены в пакете java.awt.event (см. рисунок 5).

В классах событий существуют открытые методы:

Класс

Метод

Возвращаемые данные

EventObject

Object getSource()

объект, вызвавший события

String toString()

строка, описывающая событие

AWTEvent

int getID()

идентификатор типа события

String paramString()

строка параметров события

ActionEvent

int getModifiers()

состояние клавиш-модификаторов

String getActionCommand()

название действия

AdjustmеntEvent

int getValue()

текущее значение, полученное из прокрутки

int getAdjustmentType()

тип установки прокрутки, изменившей значения

Adjustable getAdjustable()

ссылка на объект прокрутки, установивший значение

ItemEvent

Object getItem()

пункт списка, измененный данным событием

Container getContainer()

объект, вызвавший данное событие

FocusEvent

boolean isTemporary()

истину, если фокус ввода данного объекта возобновляется самостоятельно

PaintEvent

Graphics getGraphics()

графический контекст для данного события

WindowEvent

Window getWindow()

ссылка на окно, которое вызвало данное событие

InputEvent

boolean isShiftDown()

истина, если нажата клавиша Shift

boolean isControlDown()

истина, если нажата клавиша Control

boolean isMetaDown()

истина, если нажата клавиша Meta

boolean isAltDown()

истина, если нажата клавиша Alt

int getWhen()

время в миллисекундах с того времени, как произошло данное событие

int getModifiers()

состояние всех модификаторов клавиатуры

boolean isConsumed()

истина, если событие обработано

KeyEvent

int getKeyCode()

код клавиши, вызвавшей событие

char getKeyChar()

символ клавиши, вызвавшей событие

boolean isActionKey()

истина, если клавиша, вызвавшая событие, является функциональной клавишей

MouseEvent

int getX()

текущая абсцисса указателя мыши при генерации данного события

int getY()

текущая ордината указателя мыши при генерации данного события

Point getPoint()

положение указателя мыши при генерации данного события

getClickCount()

число нажатий на кнопку мыши при генерации данного события

isPopupTrigger()

истина, если данное событие связано с переключателем всплывающего меню для текущей операционной платформы

Классы, ответственные за обработку событий в JDK 1.1, реализуют интерфейсы “прослушивания” событий (listeners):

Интерфейс

Переопределяемые методы

Описание

ActionListener

actionPerformed

(ActionEvent e)

произведено некоторое действие

AdjustmentListener

adjustementValueChanged (AdjustmentEvent)

изменилось значение в линии прокрутки

ComponentListener

componentResized (ComponentEvent e)

компонент изменил размер

componentMoved

(ComponentEvent e)

компонент изменил расположение

componentShown

(ComponentEvent e)

компонент отображен

componentHidden (ComponentEvent e)

компонент спрятан

ContainerListener

componentAdded

(ContainerEvent e)

компонент добавлен

в контейнер

componentRemoved (ContainerEvent e)

компонент убран из контейнера

FocusListener

focusGained(FocusEvent e)

компонент получил фокус ввода

focusLost (FocusEvent e)

компонент потерял фокус ввода

ItemListener

ItemStateChaged (ItemEvent e)

изменился выделенный пункт выбора

KeyListener

keyTyped(KeyEvent e)

напечатан символ

keyPressed(KeyEvent e)

нажата клавиша

keyReleased(KeyEvent e)

нажатая клавиша отпущена

MouseListener

mouseClicked(MouseEvent e)

нажата и отпущена кнопка мыши

mousePressed(MouseEvent e)

нажата кнопка мыши

mouseReleased(MouseEvent e)

отпущена нажатая кнопка мыши

mouseEntered(MouseEvent e)

указатель мыши вошел в область компонента

mouseExited(MouseEvent e)

указатель мыши вышел из области компонента

MouseMotionListener

mouseDragged(MouseEvent e)

перемещен указатель мыши при нажатой кнопке мыши

mouseMoved(MouseEvent e)

перемещен указатель мыши при не нажатой кнопке мыши

TextListener

textValueChanged(TextEvent e)

текстовое значение изменилось

WindowListener

windowOpened(WindowEvent e)

окно открыто

windowClosing(WindowEvent e)

окно закрывается

windowClosed(WindowEvent e)

окно закрыто

windowIconified(WindowEvent e)

окно минимизировано

windowDeiconified

(WindowEvent e)

окно восстановило размеры после минимизации

windowActivated

(WindowEvent e)

окно активировано (является окном ввода информации)

windowDeactivated

(WindowEvent e)

окно перестало быть активным окном

Некоторым интерфейсам событий соответствуют открытые абстрактные классы-адаптеры, содержащие пустые методы для обработки событий:

Интерфейс

Класс

ComponentListener

ComponentAdapter

ContainerListener

ContainerAdapter

FocusListener

FocusAdapter

KeyListener

KeyAdapter

MouseListener

MouseAdapter

MouseMotionListener

MouseMotionAdapter

MouseInputListener

MouseInputAdapter

WindowListener

WindowAdapted

К действиям относятся события, поступающие от компонентов:

Компонент

Генерируемое событие

Button

нажатие на кнопку мыши

MenuItem

нажатие на кнопку мыши

List

нажатие на кнопку мыши

нажатие на клавишу возврата каретки

TextField

нажатие на клавишу возврата каретки

Управляющие компоненты регистрируют “прослушивание” событий при помощи методов вида:

Характеристики

Тип файла
Документ
Размер
5,68 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6799
Авторов
на СтудИзбе
278
Средний доход
с одного платного файла
Обучение Подробнее