Есть слушатель кнопок, при нажатии на одну из кнопок значение переменной x
должно увеличиваться до определённого значения (60), а после снижаться до 0. Вот как я попытался это сделать:
if(x >= 60){
while(x >= 0){
x -= y;
}
}else{
x += y;
}
Казалось бы всё нормально, но есть одна проблема. Переменная x
используется в actionPerformed
(реализация метода из класса ActionListener
) методом repaint()
.
Сама суть проблемы: при прибавлении картинка идёт плавно (постепенно прибавляя y
, а не выдавая сразу конечный результат - 60), а когда понижается выходит лишь конечный результат (0), что не удивительно, ибо это цикл (в связи с тем, что он не обращает внимание на всё остальное, пока не закончит выполнение). Т.е. нужно как-то отслеживать изменение переменной в цикле или впихнуть туда действие (repaint
)
Так вот вопрос, возможно ли как-то сделать "ссылку" на реализацию слушателя или repaint()
(через объект уже пытался - бесполезно)? Либо нужна какая-то формула, по которой он сначала будет прибавлять до определённого момента, а после снижать (в идеале). Готов пробовать Ваши варианты, потому что сам я уже не знаю что делать
Если картинка увеличивается нормально, значит весь этот код так или иначе уже выполняется в цикле. И проблема как раз в том, что во время уменьшения не происходит прорисовка, в то время как при увеличении да. Вдаваться в подробности долго,просто надо отслеживать стадию другой переменной.
private boolean zoomIn = true; // поле для отслеживания состояния.
// если true - то изображения в стадии увеличения
// false - уменьшения
...
// в методе
if(zoomIn){
if(x < 60){
x+=y;
}else{
zoomIn = false;
}
}else{
if(x > 0){
x-=y;
}else{
zoomIn = true;
}
}
int x = 0;
int step = 1;
do {
x += step;
if (x == 60) {
step *= -1;
}
} (while x > 0);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Ниже представляю AsyncTask, который находится в адаптереВ doInBackground() выполняется парсинг с помощью Jsoup, далее в onPostExecute() устанавливается текст...
Собственно есть spring приложение которое вызывает функцию возвращающую xml в clob'еСамо взаимодействие с базой данных происходит через DAO (java классы...
Подскажите, возможно ли убрать эффект в время отображения уведомления?