//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; public observateurButtonEtText(plateau plat0, int fonction0, JTextField zone0){ this.plat=plat0; this.fonction=fonction0; this.zone=zone0; } @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){ if(this.plat.getLigne()!=-1 && this.plat.getLigne()!=-1 && this.plat.getBombe()!=-1){ this.plat.newGame(); } } 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){ } } if(this.fonction==5){ this.plat.getFenetre().dispose(); } } }