|
|
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Есть собственный класс, при создании экземпляра которого создаются текстовое поле (TextField) и кнопка (Button). В этот класс мне надо добавить слушателя, который бы отлавливал ввод текста в TextField и/или клик кнопки Button. Примерно это выглядит так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: java 1. 2. 3. 4. 5. 6. 7. 8. Т.е. при вводе текста или клике кнопки должно вывестись "fire Event!" Проблема в том, что у родного текстбокса и родного баттона разные по типу слушатели и я не могу вот так просто им "скормить" общий слушатель. Что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 14:49 |
|
||
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
MAULER, Передать коллбэк, далее его вызывать в каждом листенере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 14:54 |
|
||
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
no56892, т.е. внутри класса на текстовое поле добавить "родной" листенер и на баттон тоже добавить его родной листенер? А дальше я не знаю как :( Можете в рамках моего примера привести коротенький код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 15:04 |
|
||
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
MAULERПроблема в том, что у родного текстбокса и родного баттона разные по типу слушатели и я не могу вот так просто им "скормить" общий слушатель. Создать промежуточный класс к которому привязывается общий слушатель и который устанавливает слушатели на "текстбокса и родного баттона" и транслирует их в события для "общего слушателя" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 15:08 |
|
||
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, Что-то типа Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 15:16 |
|
||
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев , зацените пожалуйста, так ли я Вас понял: Код: java 1. 2. 3. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. В вызывающем модуле: Код: java 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 20:49 |
|
||
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
MAULER, Тут надо многодумать). События разные и это логично. Зачем тебе одно событие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 21:46 |
|
||
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
File brobser / выбор файла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 21:48 |
|
||
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
Petro123, Юзер на форме вводит в строке поиска фрагмент выражения и может нажать просто Enter или кнопку "найти" (" > ") Для экземпляра класса, понимаемом в вызывающем Модуле как единый компонент это должно выглядеть как одно событие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 03:46 |
|
||
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
MAULER, Согласен, тогда на выходе одно событие. Если понадобится поиск при вводе букв, тогда надо будет два- onChange и onFind ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 09:11 |
|
||
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
Petro123, А иногда и на onBlur приходится вешать и сравнивать со старым значением или генерить новое событие с задержкой от старого, если еще более нового не появилось. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 09:36 |
|
||
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
MAULER Сергей Арсеньев , зацените пожалуйста, Ну я б еще проверку на то, что добавляемый Listener не пуст добавил. NPE в этом месте гораздо проще понять, чем когда неизвестно кто его добавил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 09:38 |
|
||
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, Всё вроде бы работает, но есть нюанс: Когда я ввожу текст, при этом не нажимаю Enter или Tab, одним словом не покидаю фокус текстового поля. И кликаю мышкой по кнопке. В этот момент у меня обработчик срабатывает дважды. С одной стороны оно и логично: ведь отработал слушатель ввода текста (покинул фокус) и отработал слушатель клика кнопки. И вроде бы текст в поле один и тот же а обработалось два раза. Как бы сделать так, чтоб при клике по кнопке в ЭТОМ случает обработчик сработал один раз? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 10:19 |
|
||
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
MAULERPetro123, Юзер на форме вводит в строке поиска фрагмент выражения и может нажать просто Enter или кнопку "найти" (" > ") Т.е. надо отлавливать не ввод букв, а нажатие на Enter в TextField? Тогда я бы сделал так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. А в вызывающем модуле: Код: java 1. Или же речь именно об отлове символов, введённых в TextField? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 10:48 |
|
||
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
boris_94263MAULERPetro123, Юзер на форме вводит в строке поиска фрагмент выражения и может нажать просто Enter или кнопку "найти" (" > ") Т.е. надо отлавливать не ввод букв, а нажатие на Enter в TextField? Тогда я бы сделал так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. А в вызывающем модуле: Код: java 1. Или же речь именно об отлове символов, введённых в TextField? Конечно же там в конструкторе this.tf.setOnAction(hdl) - ошибся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 10:52 |
|
||
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
MAULER, Проверить, что изменения реально были. :) Т.е. строка не такая как и была. С другой стороны , если нужно будет реально обрабатывать два события при двух нажатиях клавиши, но надо будет еще вводить проверку, мол с прошлого раза прошла секунда или еще как. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 11:15 |
|
||
|
Есть собственный класс. Надо добавить слушателя на события двух внутренних компонентов.
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, На самом деле мне нужно отлавливать не сам набор символов, а нажатие кнопки Enter в текстовом поле. т.е. Пользователь может набрать слово и не заморачиваясь нажать тут же Enter, или заморочиться и нажать Enter. В любом случае должно сработать одно событие, не два. Но я вроде бы решил вопрос. Воспользовался этим примером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 11:21 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39293352&tid=2123806]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
80ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 411ms |

| 0 / 0 |
