Как восстановить BufferedImage после свернутого окна?

180
22 декабря 2017, 01:16

Используя таймер рисую в 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;

READ ALSO
Не могу обойти шаблон в поле ввода

Не могу обойти шаблон в поле ввода

ПриветствуюЕсть форма для заполнения анкеты

223
Как повесить события кнопок, чтобы при нажатии они имитровали e.keyCode цифр и клавише bakspace?

Как повесить события кнопок, чтобы при нажатии они имитровали e.keyCode цифр и клавише bakspace?

Как повесить события кнопок, чтобы при нажатии они имитровали ekeyCode цифр и клавише bakspace? В моем случае позиция курсора при нажатии по кнопкам...

184