Таймеры перезапускаются «для петель»? Я пытаюсь сделать таймер, чтобы панель циклически перебирала 5 разных цветов через заданный интервал времени.

1
public class TimerListener implements ActionListener
    {
        private JPanel focus;
        Color colorWheel[] = new Color[5];
        public TimerListener(JPanel p)
        {
            focus = p;

            colorWheel[0] = Color.RED;
            colorWheel[1] = Color.BLUE;
            colorWheel[2] = Color.YELLOW;
            colorWheel[3] = Color.GREEN;
            colorWheel[4] = Color.ORANGE;

        }
        public void actionPerformed(ActionEvent ae)
        {

            for(int i = 0; i < colorWheel.length; i++)
            {
                focus.setBackground(colorWheel[i]);
                focus.repaint();
            }
        }
    }
Теги:

1 ответ

1
Лучший ответ

Цикл for будет "перезагружать" себя. Это происходит потому, что когда вы объявляете свой счетчик i, он существует в пределах for loop. Когда for loop заканчивается, i перестаю существовать.

  • 0
    Правильно. Итак, как бы я сделал так, чтобы таймер мог иметь цикл панели с теми же 5 цветами, чтобы таймер вызывал метод "stop ()"?
  • 0
    Используйте while цикл, с boolean флагом , чтобы указать , следует ли продолжать работать или нет.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню