Как сделать JButton кликабельным только один раз, не прибавляя счет к последующим кликам? - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть сетка JButton элементов управления, и нажатие кнопки покажет число. Первые 7 нажатых кнопок будут жёлтыми, а 8-я кнопка зелёной. Я делаю это с помощью «Count». Однако в настоящее время я сталкиваюсь с проблемой, при которой я нажимаю ту же кнопку, и она все еще увеличивает счет, и к восьмому щелчку кнопка из желтого становится зеленой.

Я прикрепил свой метод прослушивания действий ниже:

@Override
public void actionPerformed (ActionEvent event)
{
    for (int i = 0; i < totalButton; i++)
    {
        if (event.getSource() == jbArray[i])
        {
            jbArray[i].setText (String.format("%d", alist.get(i)));

            if (count == 8)
            {
                jbArray[i].setBackground (Color.GREEN);
            }
            else if (count < 8)
            {
                jbArray[i].setBackground (Color.YELLOW);
            }
            count++;
        }
    }
}

1 Ответ

0 голосов
/ 06 ноября 2018

Похоже, у вас есть массив кнопок. Вам понадобится какой-то способ отследить, по какой кнопке jButton нажали. Вы можете создать другой массив с именем clicked [] и сохранить, какая кнопка была нажата. Затем вы можете выполнить итерацию по массиву, чтобы увидеть, соответствует ли нажатый номер текущей кнопке. Если его нет в вашем втором списке, запустите код изменения цвета, а затем добавьте его в массив clicked []. Это всего лишь один пример, конечно, есть и другие способы, но идея состоит в том, чтобы отслеживать то, что было нажато, и запускать средство смены цвета только тогда, когда оно показывает, что кнопка не была нажата.

...