SAE21_2021/observateurButtonEtText.java
2022-05-19 11:23:05 +02:00

94 lines
3.1 KiB
Java

//Clément Martins et Tom Monin
//Class utiliser pour observateur avec plusieur action ossible (en fonction de sa fonction défini a la création)
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.io.*;
public class observateurButtonEtText implements ActionListener {
private plateau plat;
private int fonction;
private JTextField zone;
private JFrame fenetre;
public observateurButtonEtText(plateau plat0, int fonction0, JTextField zone0, JFrame fenetre0){
this.plat=plat0;
this.fonction=fonction0;
this.zone=zone0;
this.fenetre=fenetre0;
}
@Override
public void actionPerformed(ActionEvent evenement){
if(this.fonction==1){
int nombre=0;
try{
this.zone.setBackground(new Color(255,255,255));
nombre=Integer.parseInt(evenement.getActionCommand());
if(nombre<0){
nombre=0;
}
if(this.plat.getLigne()!=-1 && this.plat.getCollonne()!=-1){
if(nombre>this.plat.getLigne()*this.plat.getCollonne()){
nombre=this.plat.getLigne()*this.plat.getCollonne();
}
this.zone.setText(String.valueOf(nombre));
}else{
this.zone.setBackground(Color.red);
this.zone.setText("Selectionner Ligne et Collonne Avant");
this.plat.setBombe(-1);
}
this.plat.setBombe(nombre);
}catch(NumberFormatException e1){
this.zone.setBackground(Color.red);
this.zone.setText("rentrer un nombre valide");
this.plat.setBombe(-1);
}
}
if(this.fonction==2){
int nombre=0;
try{
this.zone.setBackground(new Color(255,255,255));
nombre=Integer.parseInt(this.zone.getText());
if(nombre<0){
nombre=0;
}
if(this.plat.getLigne()!=-1 && this.plat.getCollonne()!=-1){
if(nombre>this.plat.getLigne()*this.plat.getCollonne()){
nombre=this.plat.getLigne()*this.plat.getCollonne();
}
this.plat.setBombe(nombre);
if(this.plat.getLigne()!=-1 && this.plat.getCollonne()!=-1 && this.plat.getBombe()!=-1){
this.plat.newGame();
}else{
if(this.plat.getBombe()==-1){
this.zone.setBackground(Color.red);
this.zone.setText("Rentrer un nombre de Bobme");
}
}
}else{
this.zone.setBackground(Color.red);
this.zone.setText("Selectionner Ligne et Collonne Avant");
this.plat.setBombe(-1);
}
this.plat.setBombe(nombre);
}catch(NumberFormatException e1){
this.zone.setBackground(Color.red);
this.zone.setText("rentrer un nombre valide");
this.plat.setBombe(-1);
}
}
if(this.fonction==3){
this.plat.menuChoixLCB();
}
if(this.fonction==4){
try{
FileInputStream fichier = new FileInputStream("./sauvegarde.data");
this.plat.reprendrePartie(fichier);
}catch(FileNotFoundException e1){
JOptionPane.showMessageDialog(this.fenetre, "sauvegarde introuvable");
}
}
if(this.fonction==5){
this.plat.getFenetre().dispose();
}
}
}