Как заставить отдельные кнопки делать разные вещи? - PullRequest
2 голосов
/ 19 июня 2020

В простом приложении, которое я создаю, у меня есть кнопка, которая при нажатии увеличивает значение переменной на единицу. Это код:

public class GUI implements ActionListener {
    int clicks = 0;
    int autoClickLevel = 0;
    JLabel label;
    JFrame frame;
    JPanel panel;

    public GUI() {
        JButton button = new JButton("Click me!");
        button.addActionListener(this);

        panel = new JPanel();
        panel.setBorder(BorderFactory.createEmptyBorder(60, 100, 30, 100));
        panel.setLayout(new GridLayout(0, 1));
        panel.add(button);

        frame.add(panel, BorderLayout.CENTER);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
}

public static void main(String[] args) {
    new GUI();
}

@Override
public void actionPerformed(ActionEvent e) {
    clicks++;
}

Я хотел бы знать, как сделать отдельную кнопку (которую я уже сделал, и она появляется; JButton button2 = new JButton("Click me too!");), которая изменяет отдельную переменную. button2.addActionListener(this); [плюс другие способы сделать это] вместо этого увеличивает переменную clicks вместо отдельной clicks2 переменной.

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

1 Ответ

5 голосов
/ 19 июня 2020

Имеют разные ActionListeners. Вы можете сделать это следующим образом:

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

Или вы можете определить ActionListener как собственный класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...