Files
DEV/DEV2.1/TP12/01_Memoire/FermetureFenetre.java
Simoes Lukas fe693705bf TP
2025-03-27 13:35:54 +01:00

97 lines
2.4 KiB
Java

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");
}
}
}