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

java swing user-interface jbutton actionlistener

129524 просмотра

4 ответа

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им, поэтому, когда они будут нажаты, я могу вызвать их в своей программе?

Автор: user37037 Источник Размещён: 17.05.2019 03:47

Ответы (4)


45 плюса

Два пути:

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

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

jBtnSelection.addActionListener(new ActionListener() { 
  public void actionPerformed(ActionEvent e) { 
    selectionButtonPressed();
  } 
} );

Позже вам придется определить selectionButtonPressed(). Это работает лучше, если у вас несколько кнопок, потому что ваши вызовы для отдельных методов обработки действий находятся прямо рядом с определением кнопки.

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

Автор: David Koelle Размещён: 12.11.2008 06:49

7 плюса

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

Короткий фрагмент кода:

jBtnDrawCircle.addActionListener( /*class that implements ActionListener*/ );
Автор: Alex B Размещён: 12.11.2008 06:46

1 плюс

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

Автор: AdamC Размещён: 12.11.2008 06:48

0 плюса

idk, если это работает, но я сделал имена переменных

public abstract class beep implements ActionListener {
public static void main(String[] args) {
    JFrame f = new JFrame("beeper");
    JButton button = new JButton("Beep me");
    f.setVisible(true);
    f.setSize(300, 200);
    f.add(button);
    button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            //insert code here
        }
    } );

}

}

Автор: Ronald Ortiz Размещён: 11.11.2018 10:34
Вопросы из категории :
32x32