SAE21_2021/observateurChoix.java
2022-05-25 10:27:01 +02:00

95 lines
3.4 KiB
Java

//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){
}
}