import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Attente extends JComponent implements WindowListener { private boolean enArrierePlan = false; public Attente() { super(); } @Override protected void paintComponent(Graphics pinceau) { Graphics secondPinceau = pinceau.create(); secondPinceau.setColor(this.getForeground()); if (enArrierePlan) { // Dessine un sablier secondPinceau.setColor(Color.BLACK); int[] xHaut = {100, 150, 200}; int[] yHaut = {100, 150, 100}; int[] xBas = {100, 150, 200}; int[] yBas = {250, 200, 250}; secondPinceau.fillPolygon(xHaut, yHaut, 3); secondPinceau.fillPolygon(xBas, yBas, 3); } else { // Dessine un cercle magenta sur fond vert secondPinceau.setColor(Color.GREEN); secondPinceau.fillRect(0, 0, getWidth(), getHeight()); secondPinceau.setColor(Color.MAGENTA); secondPinceau.fillOval(100, 100, 100, 100); } } @Override public void windowDeactivated(WindowEvent evenement) { System.out.println("Fenêtre mise en arrière-plan !"); enArrierePlan = true; repaint(); } @Override public void windowActivated(WindowEvent e) { System.out.println("Fenêtre active !"); enArrierePlan = false; repaint(); } // Méthodes inutilisées mais obligatoires à déclarer @Override public void windowOpened(WindowEvent e) {} @Override public void windowClosing(WindowEvent e) {} @Override public void windowClosed(WindowEvent e) {} @Override public void windowIconified(WindowEvent e) {} @Override public void windowDeiconified(WindowEvent e) {} }