Как я смогу сравнить два нажатия кнопок из трех вариантов? - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть 3 кнопки

b1 b2 b3

Теперь я хочу, чтобы эти кнопки нажимались по очереди. Итак, поверните один, я нажимаю, а поверните 2, нажмите другой человек. Поэтому после второго поворота я сравню названия кнопок.

b1.addActionListener(new ActionListener() {
    public void actionPerformed( ActionEvent event ) {
        b1.setEnabled(false);
        if (!b1.isEnabled() && !b2.isEnabled()) {
            //computeWinner(b1.getText(), b2.getText());
        } else if(!b1.isEnabled() && !b3.isEnabled()) {
            //computeWinner(b1.getText(), b2.getText());
        }
    }
});

Я думал, что это сработает, но с этим много чего не так, во-первых, поскольку я отключаю кнопки, у второго пользователя всегда есть на одну опцию меньше. и второе, если утверждения, кажется, не работают? как мне сравнить JButton b3 = new JButton ("привет");<- Привет, список кнопок? </p>

РЕДАКТИРОВАТЬ: мне удалось успешно сравнить две кнопки. Теперь моя единственная проблема заключается в том, что для второго игрока одна из кнопок отключена (как я могу зафиксировать нажатие первой кнопки и нажатие второй без их отключения?). И что после сравнения я не знаю, как сбросить плату, чтобы она снова пошла. (для заданного количества циклов.)

Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 10 ноября 2019

Есть несколько вариантов.

  1. Сохраните кнопки в map<Integer, String>. целое число будет подсчитывать для отслеживания толчков. Строка будет actionCommand нажатой кнопки.
  2. Сохранение кнопки actionCommands в списке или массиве.

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

Примечание: actionCommand по умолчанию использует метку кнопки, если она не установлена ​​явно.

0 голосов
/ 10 ноября 2019

Следующий код напечатает ярлык кнопки, которая была нажата. Надеюсь, вы сможете продолжить отсюда. Не стесняйтесь, дайте мне знать, если у вас возникнут какие-либо проблемы.

ActionListener actionListener = new ActionListener(){
  public void actionPerformed(ActionEvent actionEvent) {
      System.out.println(actionEvent.getActionCommand());
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...