|
|
|
java beans getEventSetDescriptors
|
|||
|---|---|---|---|
|
#18+
Привет всем разбераюсь с Java Beans. Написал то что понял. Зашел в тупик. Хочу переопределить методы класа SimpleBeanInfo, знаю что не обезательно, но хочется понять как оно работает. Застрял на методе getEventSetDescriptors . Помогите разобратся. Пишет так: -- Источник обязан: - выбрать имя метода, вызываемого в компонентах-подписчиках при распространении события. Этот метод должен содержаться в интерфейсе, который является расширением интерфейса EventListener (данное расширение мы будем называть интерфейсом события); - реализовать метод регистрации подписчиков события и метод аннулирования регистрации; - при распространении события вызвать метод, описанный в интерфейсе события, во всех компонентах-подписчиках. -- В свою очередь, подписчик должен предпринять следующие действия: - выполнить реализацию интерфейса события, то есть по сути реализовать метод обработки события (напомним, что имя этого метода выбрал источник); - зарегистрироваться в качестве подписчика события. Метод обработки события должен иметь один аргумент, которым является так называемый событийный объект - преемник класса java.util. EventObject. Посредством этого объекта подписчику передается информация об источнике и другие характеристики события. Регистрационные методы должны поддерживать рефлексию и определяться по следующим шаблонам: public void add<имя интерфейса события> (<имя интерфейса события> подписчик); public void remove<имя интерфейса события> (<имя интерфейса события> подписчик); Определение метода fire - внутреннее дело источника события. Например я хочу создать события которое будет следить какое значения поля name у моего бина и выводить на консоль подтверждения, если оно равно "Petro", что нужно добавить? Как будет тогда метод getEventSetDescriptors выгледить? Спасибо всем кто хоть прочитает это) Код: 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. Код: 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. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. Код: java 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2013, 15:23:04 |
|
||
|
java beans getEventSetDescriptors
|
|||
|---|---|---|---|
|
#18+
DzibПривет всем разбераюсь с Java Beans. 90% этой спецификации никем не поддерживается и нигде не используется. Не тратьте время зря. Свойства, ProperyChangeListener, Introspector - это всё что нужно знать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2013, 15:28:11 |
|
||
|
java beans getEventSetDescriptors
|
|||
|---|---|---|---|
|
#18+
Я должен презентацию провести по этому и вникаю в суть. Если нет класа BeanInfo то Introspector достает через рефлекцию, наверно этот путь дольше будет, чем прямо к BeanInfo. Если кто поможет, буду благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2013, 15:36:05 |
|
||
|
java beans getEventSetDescriptors
|
|||
|---|---|---|---|
|
#18+
Dzib, Если по теме. Поставьте breakpoint в конструкторы EventSetDescriptor. И пните Introspector. Увидите все параметры конструктора. Повторите их в своём getEventSetDescriptors. Только смысл? В Java ссылку на Method всё равно можно получить только рефлексией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2013, 15:45:48 |
|
||
|
java beans getEventSetDescriptors
|
|||
|---|---|---|---|
|
#18+
DzibЯ должен презентацию провести по этому и вникаю в суть. Уверен что где-то у вас в процессе вышел испорченый телефон. Презентация JavaBeans в доступной форме это всё что я перечисли выше. Плюс обзор смежных технологий, где Java Beans используется. Речь точно не про Enterprise Java Beans? DzibЕсли нет класа BeanInfo то Introspector достает через рефлекцию, наверно этот путь дольше будет, чем прямо к BeanInfo. Наверное у вас в системе максимум 100-1000 бинов. Посроить один раз для них BeanInfo на этапе инициализации это ерунда. Нигде никто не вычисляет их постоянно. Если нужно - можно закешировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2013, 15:46:24 |
|
||
|
java beans getEventSetDescriptors
|
|||
|---|---|---|---|
|
#18+
Нет точно не Код: java 1. Мне нужно ещё написать маленькое приложения которое показало б возможности Java Beans. Я не опытный в презентациях, думаете показать работу Introspector и ProperyChangeListener хватит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2013, 15:56:54 |
|
||
|
java beans getEventSetDescriptors
|
|||
|---|---|---|---|
|
#18+
DzibМне нужно ещё написать маленькое приложения которое показало б возможности Java Beans. Я не опытный в презентациях, думаете показать работу Introspector и ProperyChangeListener хватит? Для того чтобы знать "что" показывать. Нужно понимать "зачем" показывать. "Зачем" показывать, из ваших слов сводится к "так надо". 1. Почему все используют Java Beans? Потому что там есть свойства. Нужно объснить и показать преимущества свойств над полями. Это не такой простой вопрос как может показаться. 2. Зачем нужен Introspector ? Чтобы вместо работы с полями и методами, можно было бы работать со свойствами. 3. ProperyChangeListener мы определились со свойстами. Теперь их иногда будет слушать. Местами используется. Местами нет. Фреймверк, который максимально эксплуатировал бины это Swing. Он уже много лет не развивается. В более современной технологии - JavaFX, свойства для биндинга реализованы немного иначе. ProperyChangeListener это то немного что ещё где-то используется. Такие минимальные навороты как indexed property и vetoable property change - умеют лишь несколько фреймверков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2013, 16:10:37 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38250536&tid=2129407]: |
0ms |
get settings: |
12ms |
get forum list: |
27ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
48ms |
get topic data: |
18ms |
get forum data: |
5ms |
get page messages: |
88ms |
get tp. blocked users: |
3ms |
| others: | 292ms |
| total: | 507ms |

| 0 / 0 |
