Отладка кода по работе со слушателями

577
04 сентября 2017, 05:22

Моя первая программа на Java. Не знаю, как правильно описать проблему, поэтому не могу найти ответ в интернете.

Суть вопроса такова:

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

while(true) {
            gameField.inform = "Игрок 1 выберите цвет хода в нижней части окна";
            gameField.setInform(gameField.inform);
        do{
            nominal1 = field.controlPanel(); // слушатели на кнопках передают число
        }while (nominal1 == nominal2); // число хода игроков должны быть разными
        field.boardUpdate(nominal1, 1);//игровое поле обновляется согласно новым данным
        gameField.setField(field.board, field.size);// новое поле отображается на экран
        if(gamer.win(1, field.size, field.board)) break;// проверка на конец игры
            gameField.inform = "Игрок 2 выберите цвет хода в нижней части окна";
            gameField.setInform(gameField.inform);
        do{
            nominal2 = random.nextInt(6) + 1;// игрок компьютер - выбирает случайное число
        }while (nominal2 == nominal1);// число хода игроков должны быть разными
        field.boardUpdate(nominal2, 2);//игровое поле обновляется согласно новым данным
        gameField.setField(field.board, field.size);// новое поле отображается на экран
        if(gamer.win(2, field.size, field.board)) break;// проверка на конец игры
    }

И класс в котором определяются слушатели:

//Создание панели кнопок
public  int controlPanel(){
    for (int i = 0; i < 6; i++) {
        controlBut[i] = new Cell();
        controlBut[i].status = 0;// кнопка ничейная
        controlBut[i].nominal = i + 1;// цифровое значение кнопки
        controlBut[i].button.setBackground(Cell.setColor(i + 1));// установка цвета кнопки согласно значения
        controlBut[i].button.setText(Integer.toString(i + 1));//надпись на конпке цифрового значения
        // Слушатель нажатия на кнопку
        controlBut[i].button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String butName = e.getActionCommand();
                color = Integer.parseInt(butName);// присваивает значения нажатой кнопки
                //System.out.println(butName);
            }
        });
    }
    return color;
}
READ ALSO
Как добавить MouseListener к Image? JAVA

Как добавить MouseListener к Image? JAVA

Задача такая: чтобы при клике на картинку в консоль выводилось сообщение

566
Своя кнопка свернуть в JavaFX

Своя кнопка свернуть в JavaFX

Всем добрый день, хочу убрать рамку и сделать свои кнопки свернуть, закрыть и тд

763
Как вызвать Activity методом startActivityForResult не из другого Activity

Как вызвать Activity методом startActivityForResult не из другого Activity

Здравствуйте, у меня есть класс логики (Test), из которого необходимо вызвать другое Activity методом startActivityForResult (Или каким-то другим образом получить...

549
Raspberry Pi 3 model B + Java + RC522

Raspberry Pi 3 model B + Java + RC522

Здравствуйте, есть проблема: работать с RFID RC522 с Java на Raspberry pi 3 Model BПроблема заключается в поиске библиотеки, гугл результатов не дал

654