Представьте себе массив чисел. Конкретная кнопка с номером, которая должна мигать. Я должен пройти через массив. Теперь таймер качания мигает одной кнопкой в порядке, но если я попытаюсь установить цикл for(int I=0;i<array.length;i++)
, перейдите к следующей кнопке - таймер этого не сделает. Любая помощь будет оценена по достоинству. Спасибо. Вот код, который у меня есть сейчас:Java Swing Timer Loop
Timer startGame = new Timer(1000, new ActionListener() {
int colorPlay = 1;//which sqaure to blink
int blinkingState = 0;
@Override
public void actionPerformed(ActionEvent e) {
if (blinkingState < 2) {
int i = blinkingState % 2;
switch (i) {
case 0:
if (colorPlay == 1) {
greenButton.setBackground(Color.green);
} else if (colorPlay == 2) {
redButton.setBackground(Color.red);
} else if (colorPlay == 3) {
blueButton.setBackground(Color.blue);
} else if (colorPlay == 4) {
yellowButton.setBackground(Color.yellow);
}
break;
case 1:
if (colorPlay == 1) {
greenButton.setBackground(lightGreen);
} else if (colorPlay == 2) {
redButton.setBackground(lightRed);
} else if (colorPlay == 3) {
blueButton.setBackground(lightBlue);
} else if (colorPlay == 4) {
yellowButton.setBackground(lightYellow);
}
break;
}//switch ends
blinkingState++;
}//if blinking<2 ends
}//actionPerformed ends
});//timer ends
Является ли 'for (int I = 0; i
kiheru
Да, он свободен от опечаток. Только если я поставил для (.......) цикл, он дает ошибку: «незаконный старт типа. Не удается найти класс символов i ...» Я попытался объявить int i в конструкторе - бесполезно. Спасибо за попытку помочь – user3438186
Было бы проще сказать, что такое ошибка, если вы показали то, что вы на самом деле писали. Но, в любом случае, если цикл выше действительно то, что вы пробовали: вы, по-видимому, намерены использовать индекс цикла 'I', но на самом деле изменить' i'. Предположим, что вы используете 'I' в качестве индекса массива, он остается' 0', так как он никогда не был изменен => затронута только первая кнопка. – kiheru