Important Notice - Forums is archived
To simplify things and help our users to be more productive, we have archived the current forum and focus our efforts on helping developers on Stack Overflow. You can post new questions on Stack Overflow or join our Discord channel.

Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.
Подменить листенер в ранее созданной кнопке.
Уважаемые друзья!
Как подменить листенер в ранее созданной кнопке?
Т.Е. Есть некоторая стандартная форма ( MyForm form) со стандартной логикой. По клику на некоторой кнопке производится определенная работа. Имеется способ обратиться к данной кнопке из вне:
Button newBtn = form.getThatButton();
добавляем листенер:
btnNew.addClickListener(new Button.ClickListener() {
@Override
public void buttonClick(Button.ClickEvent event) {
System.out.println(" ---===>>>}}}");
}
});
Всё хорошо. Однако при клике на кнопке сначала вызывается обработчик, определенный ранее в классе формы. затем новый листерен.
Как удалить старый листенер?
Код, приведенный ниже, почему то не работает.
Collection<?> listeners = btnNew.getListeners(Button.ClickListener.class);
for(Object cl : listeners){
btnNew.removeClickListener((Button.ClickListener) cl);
}
getListeners возвращает пустую коллекцию.
Спасибо!!!
Приветствую,
попробуйте заменить на btnNew.getListeners(ClickEvent.class);
Удачи!