2016-01-04 4 views
0

Есть ли универсальный слушатель для значения изменения JComponent? Я знаю только, что ссылка является экземпляром JComponent, и я хочу добавить слушателя для измененных значений, например. когда этот компонент является TextField, и я меняю текст.Универсальный слушатель для JComponent

+1

* «Есть ли универсальный прослушиватель для значения изменения JComponent?» * Нет, но тогда мы не должны использовать глобальный прослушиватель в любом случае. * "например, когда этот компонент является TextField, и я меняю текст." * Если по 'TextField' вы имеете в виду' JTextField', то для этого, посмотрите на 'DocumentListener' .. –

+0

да есть только EventHandler, остальное правильно descirber в комментарии Andrew Thompson – mKorbel

ответ

1

Короткий ответ Нет, такого слушателя нет. Самое близкое решение для вашего дела - попытаться использовать PropertyChangeListener.

Некоторые подробности можно найти здесь: https://docs.oracle.com/javase/tutorial/uiswing/events/propertychangelistener.html

Но в любом случае, я думаю, что это проблема XY, поэтому было бы лучше, чтобы описать проблему и попросить решение insteed просить о existatnce некоторого решения неизвестно (к нам) проблема.

+0

Таким образом, свойство «значение» в PropertyChangeListener будет работать, например, для JTextField? – ThirdMartian

+0

На первый взгляд да, но это зависит от фактической реализации компонента, если это события смены свойств. Это МОЖЕТ быть самым близким решением того, что вы хотите, но только МОЖЕТ, а может и нет. Опять же: нет такого универсального слушателя, вам придется написать его самостоятельно в виде некоторого «шпионского» класса, который будет прикрепляться к каждому возможному событию, генерируемому данным компонентом, и делегировать событие по мере необходимости. – Antoniossss

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