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

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

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

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

2022-10-10 49
Работа с элементами управления и событиями в 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.007 с.