import java.awt.*; import java.awt.event.*; import java.io.*; import java.awt.event.WindowListener; import java.awt.event.WindowEvent; import javax.swing.*; public class FermetureFenetre implements WindowListener { private JPanel panneau; private JFrame fenetre; public FermetureFenetre(JFrame fenetre, JPanel panneau) { super(); this.fenetre = fenetre; this.panneau = panneau; } public void windowActivated(WindowEvent evenement) { } // premier plan public void windowClosed(WindowEvent evenement) { } public void windowClosing(WindowEvent evenement) { try { Dimension dims = this.fenetre.getSize(); Point loc = this.fenetre.getLocation(); Color color = this.panneau.getBackground(); FileOutputStream fichier = new FileOutputStream("windowlocation.bin"); DataOutputStream flux = new DataOutputStream(fichier); try { flux.writeInt((int) loc.getX()); flux.writeInt((int) loc.getY()); flux.writeInt((int) dims.getWidth()); flux.writeInt((int) dims.getHeight()); flux.writeInt(color.getRed()); flux.writeInt(color.getGreen()); flux.writeInt(color.getBlue()); } catch (IOException e2){ System.out.println("Erreur d'écriture"); } try { flux.close(); } catch (IOException e3) { System.out.println("Erreur de fermeture"); } } catch (IOException e) { System.out.println("Erreur d'ouverture"); } } // avant fermeture public void windowDeactivated(WindowEvent evenement) { } // arrière-plan public void windowDeiconified(WindowEvent evenement) { } // restauration public void windowIconified(WindowEvent evenement){ } // minimisation public void windowOpened(WindowEvent evenement) { try { FileInputStream fichier = new FileInputStream("windowlocation.bin"); DataInputStream flux = new DataInputStream(fichier); try { if (flux.available() >= 28) { this.fenetre.setLocation(flux.readInt(), flux.readInt()); this.fenetre.setSize(flux.readInt(), flux.readInt()); this.panneau.setBackground(new Color(flux.readInt(), flux.readInt(), flux.readInt())); System.out.println(this.panneau.getBackground() + ""); } } catch (IOException e5) { System.out.println("Erreur de lecture"); } try { flux.close(); } catch (IOException e6) { System.out.println("Erreur de fermeture"); } } catch (IOException e4) { System.out.println("Erreur d'ouverture"); } } }