Как добавить ActionListener на JButton в Java

private JButton jBtnDrawCircle = new JButton("Circle");
private JButton jBtnDrawSquare = new JButton("Square");
private JButton jBtnDrawTriangle = new JButton("Triangle");
private JButton jBtnSelection = new JButton("Selection");

Как мне добавить слушателей действий к этим кнопкам, чтобы из главного метода я мог вызвать actionperformed на них, чтобы при нажатии на них я мог вызвать их в своей программе?

Двумя способами:

  1. Реализовать ActionListener в своем классе, затем использовать jBtnSelection.addActionListener(this); Позже вам'придется определить метод, public void actionPerformed(ActionEvent e). Однако, делая это для нескольких кнопок, можно запутаться, потому что метод actionPerformed должен будет проверить источник каждого события (e.getSource()), чтобы узнать, от какой кнопки оно пришло.

  2. Используйте анонимные внутренние классы:

    jBtnSelection.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
     selectionButtonPressed();
    }
    } );
    Позже вам'придется определить selectionButtonPressed(). Это лучше работает, когда у вас несколько кнопок, потому что вызовы отдельных методов для обработки действий находятся рядом с определением кнопки.

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

Комментарии (7)

Лучше всего просмотреть учебники по Java Swing, в частности учебник по кнопкам.

Короткий фрагмент кода выглядит следующим образом:

jBtnDrawCircle.addActionListener( /*class that implements ActionListener*/ );
Комментарии (0)

Я не совсем понял, но чтобы добавить слушателя действия, вы просто вызываете addActionListener (из Abstract Button). Если это не полностью отвечает на ваш вопрос, не могли бы вы предоставить больше деталей?

Комментарии (0)