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()
).
Лучше всего просмотреть учебники по Java Swing, в частности учебник по кнопкам.
Короткий фрагмент кода выглядит следующим образом:
jBtnDrawCircle.addActionListener( /*class that implements ActionListener*/ );
Я не совсем понял, но чтобы добавить слушателя действия, вы просто вызываете addActionListener (из Abstract Button). Если это не полностью отвечает на ваш вопрос, не могли бы вы предоставить больше деталей?