2015-05-07 4 views
0

Я хотел бы передать событие из компонента калитки в его родительский объект без прямой ссылки на его родительский элемент.Передача событий без прямой ссылки на слушателя

Наблюдаемые шаблоны Java и события/слушатели всегда имеют прямую ссылку на наблюдателя или слушателя.

Можно ли бросить конкретное событие и поймать его, как исключения, без использования исключений?

(я не могу с помощью калитки атмосферы еще, потому что я использую калитку версию 6.14 и калитку атмосферы в альфа)

+0

Обычно с рамками событий есть некоторый менеджер, который имеет прямое отношение к всем слушателям и будет называть их по мере необходимости. Я не знаком с калиткой, но вам нужно будет создать своего менеджера, который может быть снабжен флагом, который при проверке скажет ему позвонить конкретному слушателю. Объект, создающий флаг, не должен заботиться о слушателе или о том, как он его получает, а просто знает о менеджере. –

ответ

0

В конце концов я использовал абстрактный класс, вместо того, чтобы использовать событие. Вместо прямого обращения к родительскому (вызывающему) классу я реализовал метод, который нуждался в этой ссылке для создания экземпляра.

например:

button.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent e) 
{ 
    ParentPanel.this.doSomething(); 
} 
Смежные вопросы