Программно спровоцировать событие нажатия JButton

Имеется кнопка JButton applyButton с обработчиком события ActionEvent.ACTION_PERFORMED. Необходимо программно создать это событие.

Рабочий способ:

ActionEvent actionEvent = new ActionEvent(applayButton, ActionEvent.ACTION_PERFORMED, "");
for (ActionListener listener : applyButton.getActionListeners()){
    listener.actionPerformed(actionEvent);
}

А это способ, который по моим представлениям должен работать, однако не работает:

applyButton.dispatchEvent(new ActionEvent(applayButton, ActionEvent.ACTION_PERFORMED, "");

Почему не работает второй способ?


Ответы (1 шт):

Автор решения: Pavel Miniutka

Может достаточно вызвать doClick()?

applyButton.addActionListener((ActionListener) e -> {
    // do smth
});
applyButton.doClick();
→ Ссылка