//Tom Monin et Clément Martins // observateurChoix V1 //Class pour la selection du nombre de collone et ligne et de Mine a la souris //ainsi que pour le choix du premier menu import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; public class observateurChoix implements MouseListener{ //le composant qui est observer ainsi que le premier (pour les ligne de choix du 2ème menu) private paintChoix pinceau, premier; //le texte des ligne et collonne private JLabel texte; //le plateau private plateau plat; //constructeur private boolean fonction; // attribut utiliser que pour le logo //@params (le composant, le premier composant de la ligne, le texte, le plateau) public observateurChoix(paintChoix pinceau0, paintChoix premier0, JLabel texte0, plateau plat0){ this.pinceau=pinceau0; this.premier=premier0; this.texte=texte0; this.plat=plat0; this.fonction=false; } public void setFonction(boolean fonction0){ this.fonction=fonction0; } @Override public void mouseClicked(MouseEvent evenement){ //on connaîtra la fonction desirer par le composant grâce a sa fonction //et donc réagir en conséquence //si la fonction est hors 8 et 10 //c'est alors que l'observateur est destiner au deuxième menu if(this.pinceau.getFonction()==1 || this.pinceau.getFonction()==2){ //on remet tous en false a partir du premier composant this.premier.setClique(false); //on les remet en true a partir de celui qui est cliquer this.pinceau.setClique(true); //si la fonction est de 1 (pour les ligne) if(this.pinceau.getFonction()==1){ //nous repositionons le nombre de ligne en foction de la position du composant this.texte.setText("<=== Ligne: "+String.valueOf(this.pinceau.getN())); //nous precisions au plateau le nombre de ligne selectionner this.plat.setLigne(this.pinceau.getN()); } //si la fonction est de 2 (pour les collonnes) if(this.pinceau.getFonction()==2){ //nous repositionons le nombre de collonne en fonction de la position du composant this.texte.setText("Collonne: "+String.valueOf(this.pinceau.getN()+" ===>")); //nous precisions au plateau le nombre de collonne selectionner this.plat.setCollonne(this.pinceau.getN()); } // pour les autres fonction (premier menu) }else{ //fonction 9 (pour nouvelle partie) if(this.pinceau.getFonction()==9){ this.plat.menuChoixLCB(); } //fonction 10 (pour reprendre une partie) if(this.pinceau.getFonction()==10){ try{ FileInputStream fichier = new FileInputStream("./sauvegarde.data"); this.plat.reprendrePartie(fichier); }catch(FileNotFoundException e1){ JOptionPane.showMessageDialog(this.plat.getFenetre(), "sauvegarde introuvable"); } } //fonction 8 (pour quitter la partie) if(this.pinceau.getFonction()==8){ this.plat.getFenetre().dispose(); } } } @Override // un bouton cliqué public void mouseEntered(MouseEvent evenement){ //on precise au composant que ont est en train de le survoler this.pinceau.selectionner(true); } @Override // debut du survol public void mouseExited(MouseEvent evenement){ //on precise au composant que on ne le survol plus this.pinceau.selectionner(false); } @Override // fin du survol public void mousePressed(MouseEvent evenement){ } @Override // un bouton appuyé public void mouseReleased(MouseEvent evenement){ } }