Сворачивание и восстановление VS Graphics - Java

Узнай цену своей работы

Формулировка задачи:

Здравствуйте!!! Интересно, как сделать так, чтобы не происходило исполнение метода paint при сворачивании и восстановлении окна. Простейший пример:
import javax.swing.*;
import java.awt.*;
 
public class JHF_TESTS_Graphics_Gradient extends JPanel{
    public Color RandColor(){
        int red = (int)(Math.random()*255);
        int green = (int)(Math.random()*255);
        int blue = (int)(Math.random()*255);
        Color rColor = new Color(red,green,blue);
        return rColor;
    }
    public void paint(Graphics g){
       Graphics2D graphics2D = (Graphics2D)g;
        GradientPaint gradientPaint = new GradientPaint(33,33,RandColor(),33,64,RandColor());
        graphics2D.setPaint(gradientPaint);
        g.fillOval(33,33,64,64);
    }
 
    public static void main(String[] args) {
        JFrame JF = new JFrame();
        JF.getContentPane().add(new JHF_TESTS_Graphics_Gradient());
        JF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JF.setSize(333,333);
        JF.setVisible(true);
    }
}

Решение задачи: «Сворачивание и восстановление VS Graphics»

textual
Листинг программы
JF.addWindowStateListener(
    new WindowStateListener() {
        @Override
        public void windowStateChanged(WindowEvent evt) {
            if (JF.getState() == Frame.ICONIFIED) {
                // остановить таймер
            } else {
                // запустить таймер
            }
        }
    }
);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.667 из 5