2016-02-20 17 views
0

Из моих собственных исследований выясняется, что термины «обработчик событий» и «слушатель» часто используются взаимозаменяемо, а иногда могут означать одно и то же. Некоторые люди (или фреймворки) различают их на основе слушателя, являющегося объектом, который фактически наблюдает за чем-то, а затем может вызывать процедуру обработчика события, когда происходит событие.Обработчик события JavaFX и терминология слушателя прослушивания

В любом случае, меня интересует JavaFX, и я могу сначала увидеть, как они ушли от Swing, где все, как правило, было слушателем - на самом деле я привык думать, что Swing имеет слушателей, содержащих один или несколько обработчиков событий, который будет выполняться в зависимости от произошедшего события.

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

Есть затем ChangeListeners, которые «прослушивают» события изменений по свойствам.

Несмотря на то, что я знаю, что реализация этих двух отличается, я бы написал, говоря, что, вообще говоря, если мы думаем о «обработке событий», правильно ли сказать, что ChangeListener по сути является обработчиком событий, который специально предназначенный для прослушивания изменений свойств. Принимая во внимание, что, в более общем плане, интерфейс EventHandler позволяет обрабатывать множество других типов событий, таких как ActionEvent, MouseEvent и т. Д.?

+0

См. Также [* Использование шаблона наблюдателя в дизайне GUI JavaFX *) (http://stackoverflow.com/q/31909941/230513). – trashgod

+0

Думаю, я бы подумал, что обработчик событий и прослушиватель изменений - оба вида наблюдателя/слушателя. Обратите внимание, что есть некоторые вещи, которые можно интерпретировать в любом случае: например. задача, изменяющая состояние жизненного цикла, может управляться обработчиком события ('setOnSucceeded (...)' и т. д.) или слушателем изменений ('task.stateProperty(). addListener (...)'). –

ответ

0

Я думаю, что ChangeListener можно рассматривать как подмножество EventHandler, но это не так, потому что, если вы обратитесь к документации ChangeListener вы можете заметить, что он не реализует интерфейс EventHandler (ChangeListener реализует WeakChangeListener и EventHandler реализует WeakEventHandler); однако их использование аналогично.

 Смежные вопросы

  • Нет связанных вопросов^_^