From 886b48c4c419d5c20ccdabbc71764ec95f051785 Mon Sep 17 00:00:00 2001 From: martins Date: Mon, 24 Oct 2022 15:28:06 +0200 Subject: [PATCH] fenetre modal fermeture jeu --- .../src/fr/iutfbleau/projetAgile/Main.java | 1 - .../Menu/Controller/ObservateurFenetre.java | 36 +++++++++++++++++++ .../iutfbleau/projetAgile/Menu/View/Menu.java | 6 ++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 projetAgile/src/fr/iutfbleau/projetAgile/Menu/Controller/ObservateurFenetre.java diff --git a/projetAgile/src/fr/iutfbleau/projetAgile/Main.java b/projetAgile/src/fr/iutfbleau/projetAgile/Main.java index eacd557..35fb8da 100644 --- a/projetAgile/src/fr/iutfbleau/projetAgile/Main.java +++ b/projetAgile/src/fr/iutfbleau/projetAgile/Main.java @@ -12,7 +12,6 @@ public class Main { public static void main(String[] args) { JFrame frame = Menu.getFrame(); frame.setLocation(200, 200); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(new Dimension(1280,720)); JPanel menu=Menu.InitMenu(); Grille g = new Grille(); diff --git a/projetAgile/src/fr/iutfbleau/projetAgile/Menu/Controller/ObservateurFenetre.java b/projetAgile/src/fr/iutfbleau/projetAgile/Menu/Controller/ObservateurFenetre.java new file mode 100644 index 0000000..4f19444 --- /dev/null +++ b/projetAgile/src/fr/iutfbleau/projetAgile/Menu/Controller/ObservateurFenetre.java @@ -0,0 +1,36 @@ +package fr.iutfbleau.projetAgile.Menu.Controller; +import java.awt.event.WindowListener; + +import javax.swing.JFrame; +import javax.swing.JOptionPane; +import java.awt.event.WindowEvent; + +public class ObservateurFenetre implements WindowListener{ + private JFrame fenetre; + public ObservateurFenetre(JFrame fenetre0){ + this.fenetre=fenetre0; + } + public void windowActivated(WindowEvent evenement){ + + } // premier plan + public void windowClosed(WindowEvent evenement){ + + } // après fermeture + public void windowClosing(WindowEvent evenement){ + int confirmation = JOptionPane.showConfirmDialog(this.fenetre.getContentPane(), "Etes-vous sûr de vouloir fermer la fenetre ?", "Quitter", JOptionPane.YES_NO_OPTION); + if(confirmation == 1) return; + this.fenetre.dispose(); + } // 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){ + + } // après ouverture +} diff --git a/projetAgile/src/fr/iutfbleau/projetAgile/Menu/View/Menu.java b/projetAgile/src/fr/iutfbleau/projetAgile/Menu/View/Menu.java index 5818f8c..8e551fb 100644 --- a/projetAgile/src/fr/iutfbleau/projetAgile/Menu/View/Menu.java +++ b/projetAgile/src/fr/iutfbleau/projetAgile/Menu/View/Menu.java @@ -8,6 +8,7 @@ import fr.iutfbleau.projetAgile.Menu.Controller.*; import fr.iutfbleau.projetAgile.Puissance4.View.*; import fr.iutfbleau.projetAgile.Puissance4.Controller.*; import fr.iutfbleau.projetAgile.Puissance4.Model.*; +import java.awt.event.WindowListener; public abstract class Menu{ public static String PUISSANCE_4="puissance4"; @@ -159,6 +160,11 @@ public abstract class Menu{ Menu.frame.setLayout(Menu.cd); Menu.frame.setMinimumSize(new Dimension(1280,720)); } + WindowListener[] wl=Menu.frame.getWindowListeners(); + if(wl.length==0){ + Menu.frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); + Menu.frame.addWindowListener(new ObservateurFenetre(Menu.frame)); + } return Menu.frame; } } \ No newline at end of file