|
|
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
Есть два jintrenalframe как из одного из них послать сообщение второму о том что произошло какое-то событие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 15:02:44 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
jintrenalframe это просто некоторый View. Для модели предметной области. Вам действительно нужно послать AWT Event, или достаточно из одного класса вызвать метод другого класса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 15:06:19 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Скажем так, первый фрейм должен отреагировать на событие во втором фрейме, например нажатие кнопки, или закрытие второго фрейма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 15:12:16 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
jcobСкажем так, первый фрейм должен отреагировать на событие во втором фрейме, например нажатие кнопки, или закрытие второго фрейма. Вам сразу по-хорошему с дизайном и слоями, или просто чтобы работало (передать ссылку на один объект в другой объект)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 15:14:25 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, хм, по-простому для начала ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 15:20:22 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
Первый фрейм может получить от второго некий объект и в зависимости от сотояния объекта должен как-то отреагировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 15:26:26 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#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. 24. 25. 26. 27. 28. 29. 30. 31. 32. Но на будущее знайте, что это уродство. Нужно уметь отделять слои приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 15:30:43 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, да к такому уродству я и сам пришел , а мне надо более элегантное решение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 15:58:35 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
jcobда к такому уродству я и сам пришел , а мне надо более элегантное решение Ну, это прямой ответ на ваш изначальный вопрос. Новички тут его регулярно задают. Более элегантное решение заключается в отделении View и Model и привлечении технологии JavaBeans. View это всё то что относиться к Swing компанентам (ваш internal frame). Задача View - отбражать актуальное сосояние Model. Model - это некоторая ваша Domain Model. Класс отражающий предметную область. По технологии JavaBeans он должен предоставлять возможность вешать PropertyChangeListener-ы (можно через PropertyChangeSupport) Когда состояние Model меняется, то Model выкидывает событие PropertyChangeEvent, а все слушатели (internal frame) обновляют отображение (View) модели. Модель может пересекатся с Model классами Swing, такими как TableModel. Как это реализовать, возможны разные варианты. Если всему этому следовать, то получится следующий механизм. FrameA и FrameB имеют ссылку на одну и ту же модель, так как являются её отображениями. Когда на FrameA нажимают кнопку, он меняет состояние модели (устанавливает новое значение какого-либо свойства). Модель оповещает всех своих слушателей через firePropertyChange (см PropertyChangeSupport). Оба FrameA и FrameB получают это событие и обновляют своё отображение. В этом случае FrameA и FrameB ничего не знают друг про друга. И модель отделена от представления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 16:15:52 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#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. 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. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. Другими словами, мы подписываемся любимыми элементами вашего проекта на все события нужного вам класса $) Применен чуть чуть видоизмененный классический шаблон Observer ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 17:16:49 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
notifyAll - не очень удачное имя для метода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 17:25:31 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
забыл никnotifyAll - не очень удачное имя для метода Ну тут вообще велосипед..ну да, неудачного тут много ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 17:27:04 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
ОзверинТак как я иногда люблю заниматься ерундой, за что начальство меня сильно любит, то вам вам велосипед, чтобы не сильно менять "структуру" вашего проекта: java.util.Observable на новый лад? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 17:32:46 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
BlazkowiczОзверинТак как я иногда люблю заниматься ерундой, за что начальство меня сильно любит, то вам вам велосипед, чтобы не сильно менять "структуру" вашего проекта: java.util.Observable на новый лад? Точно. Только он там сихнронизированный, что меня всегда настораживало;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 17:35:36 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
ОзверинТочно. Только он там сихнронизированный, что меня всегда настораживало;) Да. В GUI это страаашно влияет на производительность. Особенно в Java 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 17:40:12 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
BlazkowiczОзверинТочно. Только он там сихнронизированный, что меня всегда настораживало;) Да. В GUI это страаашно влияет на производительность. Особенно в Java 7. Учитывая, что топик вовсе не про гуи, а про какие-то абстрактные сообщения между фреймами...;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 18:05:05 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за ответы, буду вникать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 18:46:45 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
Blazkowiczкомпанентам твою ж налево. опять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 23:00:33 |
|
||
|
Сообщение от одного jintrenalframe другому
|
|||
|---|---|---|---|
|
#18+
Там есть конкретные СЛУШАТЕЛИ на конкретные РАСПРОСТРАНЁННЫЕ события. Свойственные именно JInternalFrame. Посмотри в его документацию, не ленись. Не парься с обработкой ВСЕХ событий - это велосипед. Лично мне приходилось писать свой "модальный" JInternalFrame, который на время своей работы блокировал некоторые другие фреймы. И решалось всё в лоб, через слушатели. Легче всего создать СВОЙ СОБСТВЕННЫЙ класс-наследник JInternalFrame, который будет вести себя так, как ты хочешь. И уже его брать за основу своих форм. Удобство в том, что если вдруг чего добавить, заменить, или глюки найдёшь - меняется в одной точке. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2012, 14:12:29 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37988782&tid=2130814]: |
0ms |
get settings: |
11ms |
get forum list: |
22ms |
check forum access: |
5ms |
check topic access: |
6ms |
track hit: |
40ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
107ms |
get tp. blocked users: |
3ms |
| others: | 276ms |
| total: | 491ms |

| 0 / 0 |
