Работа с элементами управления и событиями в JavaFX. — КиберПедия 

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Работа с элементами управления и событиями в JavaFX.

2022-10-10 45
Работа с элементами управления и событиями в JavaFX. 0.00 из 5.00 0 оценок
Заказать работу

Вопрос: Обработаем что-нибудь?

Ответ: Да.

Метод consumeя где-то пропустил. Давайте посмотрим. На 18 слайде.

Если мы вот этот consumeвызовем, то событие ниже не пойдет. Учтите, что на том же уровне она отработает. Т.е. она дошла до какого-то уровня и там произойдет. И если там в нескольких местах, то в нескольких местах. Но ниже не пойдет. И естественно если оно ниже не пойдет, то идти не будет. Т.е. если мы при фильтрации отсекаем, то соответственно в исходе этого события не будет. Значит нам нужно что сделать? Нам нужно чтобы у нас была какая-то вложенность хотя бы 1 – 1.5 элементов в дереве. Мы должны сделать обработчик на самом элементе (обработчик выше), причем это должен быть и фильтр. Ну три обработчика должны сделать.

Давайте возьмем первую программу, потому что кнопочки же есть.

Открываем проект JavaFX1. О!!! У нас 4 кнопки! Ну так это неплохо!

Правда только одна работает «Say 'HelloWorld'». А остальные пока пустые. Ну вот и отлично. Будем вешать на них обработчики.

Но у нас иерархия есть. У нас GridPaneи в нем кнопки.

Итак. Изобретать ничего не будем. У нас будет идти событие ActionEvent.

Итак. Наша задача сейчас подумать. Я хочу сделать в GridPane (а это root)обработчик-фильтр на событие «клик на мышке». Я же по мышке кликаю? Кликаю. Идет событие? Да идет. Сверху вниз. Куда же оно денется? Поэтому после создания GridPaneвот прямо здесь я ставлю – root, «точка»…

Фильтры, в которое событие погружаются-всплывают – это только «add». «setOnчто-то» - это на конкретном элементе.

Поэтому addEventFilterидет сверху вниз. Выбрал, добавил.

Здесь никто за меня ничего не напишет. Генерация поставила что хотела и сказала: «А подставляй какой хочешь». Нет не «какой хочешь», а ActionEvent.ACTION.А второй параметр,

new EventHandler<ActionEvent>() {public void handle(ActionEvent event){      }}

 

Интерфейс EventHandlerгенерирует анонимный класс.

Вопрос: Что мы получили?

Ответ: Мы получили обработчик. Внутриобработчиканапишемsout(“getinGrid”).

НауровнеGridPane - getinGrid. Смотрите. Вот я сейчас попробую запустить программу и я клюкаю на кнопочки. И вижу вывод сообщенияв консоле: «getinGrid».

getinGrid СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: 27 секунды)

Эта кнопочка не обрабатывает ничего. Помните, что там нет обработчика. На любой кнопочке кликнули и увидели сообщение. Это было вниз. А теперь нужно то же самое вверх. Мне почему-то кажется, что верх можно сделать обычным Copy-Paste. Как вы считаете? Не слишком это нас расслабит?

get in Grid get out of Grid get in Grid get out of Grid СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: 4 секунды)

 

 

Я беру в фильтре после soutпишу event.consume();, что означает, что рано вам получать это событие, рано.

get in Grid get in Grid get in Grid get in Grid get in Grid get in Grid СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: 4 секунды)

Этот consume() съедает ActionEvent, который проходит через Grid. consume() останавливает событие на уровне Grid.Не доходит. До кнопки не доходит. Ну и понятно, что всплытия уже не будет. Кому всплывать? Никого нет. Вот мы перехватываем и отсекаем. На уровне gridидет контроль. Что-то пользователь недоделал.

Ну как отписываться от событий, тоже ясно. Не add, а remove.

Вариант, как сделать обработчик на 3 события есть на слайде. Берите оттуда и смотрите.


Поделиться с друзьями:

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.005 с.