Сворачивание и восстановление 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 {
// запустить таймер
}
}
}
);