Используя таймер рисую в BufferedImage
. В этом же цикле таймера вывожу изображение на панель.
antField.getGraphics().drawImage(buffImg, 0, 0, antField);
Есть кнопка паузы, которая работает как надо:
if (e.getSource().equals(scr.pauseBtn)){
if (myTimer.isRunning()){
myTimer.stop();
}else{
myTimer.start();
}
}
Обрабатываю сворачивание и разворачивание окна (свернул, пока муравей бежит - поставь на паузу, развернул - паузу отожми):
public void windowStateChanged(WindowEvent e) {
MyTimer myTimer = scr.lgc.myTimer;
if (e.getNewState() == 7) // ICONIFIED
if (myTimer != null){
if (myTimer.isRunning())
myTimer.stop();
}
if (e.getNewState() == 6){ // DEICONIFIED
myTimer.drawBuffImage(); // THIS DOES NOT HELPS!
if (myTimer != null){
if (!myTimer.isRunning()
&& !myTimer.paused){
myTimer.start();
}
}
}
}
Стоит задача отрисовать изображение, находящееся в паузе.
То есть должно получиться: муравей бежит, ставим на паузу кнопкой Pause
, сворачиваем, разворачиваем => на экране стоящий на месте муравей с полным рисунком.
Без нажатия кнопки паузы все работает правильно и после разворачивания myTimer
рисует с того места, где свернул.
Добавление метода
myTimer.drawBuffImage();
в обработку разворачивания экрана делу не помогает.
Полный код: Ссылка на ГитХаб. Там же лежит скомпилированный JAR.
- отрисовка - в классе MyTimer
;
- обработка кнопки Pause
- в классе Logic
;
- обработка сворачивания окна - в классе MainFrame
;
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как повесить события кнопок, чтобы при нажатии они имитровали ekeyCode цифр и клавише bakspace? В моем случае позиция курсора при нажатии по кнопкам...