Как вручную вызвать actionPerformed в Java?

Метод actionPerformed класса ActionListener вызывается, когда мы нажмите на (допустим) JButton. Я хочу запустить этот метод вручную в программе. Является ли это возможным? Вот пример:

button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        // do something
    }  
});

Этот actionPerformed вызывается, когда я нажимаю на button. Есть ли другой способ вызвать его вручную, используя строки кода в моей программе?

это такой же метод, как и любой другой. Как можно вызвать метод? Просто создайте слушателя в другом классе, а не в анонимной реализации.

Stultuske 15.05.2022 13:31
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ты сможешь:

  • Звоните .doClick() на кнопку
  • Просто вызовите actionPerformed(null) метод... сложно, если метод находится в анонимном классе
  • Вызовите getActionListeners() на JButton и выполните итерацию по возвращаемому массиву ActionListener[], вызывая метод actionPerformed каждого слушателя.
  • Или пусть слушатель сам вызовет метод, который может вызвать основная программа (мой предпочтительный способ):
public void someMethod() {
    // has code that the listener needs done
}
button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        someMethod();  // call it here in the listener
    }  
});
// in another part of the code, call the same method
someMethod();

Другие вопросы по теме