Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как соединить 2 класса событием. 
:(
    Опции темы
FlakeMusic
Дата 28.10.2009, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 18.3.2008

Репутация: нет
Всего: 1



Здравствуйте.

Есть класс контроллер, в нём содержится класс - модель. Мне из контроллера нужно слушать определённое событие, которое может произойти в модели. Куда смотреть?

Понимаю вопрос глупый, но я работал только со стандартными событиями, типа мышки.
PM MAIL   Вверх
a_n_d_y
Дата 28.10.2009, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 23.10.2006
Где: Ukraine::Kiev

Репутация: нет
Всего: 1



Код

interface IEventListener {
  void onEvent(Model m);
}

class Model {
  private ArrayList<IEventListener> listeners = new  ArrayList<IEventListener>();

  public addEventListener(IEventListener l) {
    listeners.add(l);
  }

  public void methodToListen() {
    for (IEventListener l : listeners) {
      l.onEvent(this);
    }
  }
}

class Controller {
  public Controller(Model m) {
    m.add(new IEventListener() {
      void onEvent(Model m) {
        System.out.println("Here we are going to handle invokation of m. methodToListen()");
      }
    });
  }
}

PM MAIL ICQ Skype MSN   Вверх
ivanovpv
Дата 28.10.2009, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 4
Всего: 28



Цитата(FlakeMusic @  28.10.2009,  10:35 Найти цитируемый пост)
Мне из контроллера нужно слушать определённое событие, которое может произойти в модели. Куда смотреть?


Такие штуки решаются применением т.н. паттерна Listener, см. например сюда


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0747 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.