// Tom Monin et Clément Martins // paintChoix V1 // class pour l'affichage de la selection des lignes, collonnes et nombre de mines import java.awt.*; import javax.swing.*; import javax.swing.JComponent; public class paintChoix extends JComponent{ private boolean selectionner; //si la case est survoler private paintChoix pinceau; //le composant suivant private boolean clique; //si la casse a été cliquer private int x; //sa position private int fonction; //sa fonction (pour éviter le surplus de classe inutiles) public paintChoix(int x0, int fonction0){ this.clique=false; //de base le composant n'est pas cliquer this.pinceau=null; //il n'a pas de suivant this.selectionner=false; //il n'est pas selectionner this.x=30-x0; //sa position est la différence de 30 - celle donner (car ordre decroisant) this.fonction=fonction0; //de base ce n'est pas selectionner } // fonction permetant positionner la case et ses voisoins sur selectionner public void selectionner(boolean verif){ //on postionne la case en selectionner = @params this.selectionner=verif; //si il a un suivant if(this.pinceau!=null){ //on lui transmet le message this.pinceau.selectionner(verif); } //on repaint la case this.repaint(); } public void setPaintChoix(paintChoix pinceau0){ //pour positionner le composant suivant this.pinceau=pinceau0; } public void setClique(boolean verif){ //même principe que selectionner this.clique=verif; if(this.pinceau!=null){ this.pinceau.setClique(verif); } this.repaint(); } public int getFonction(){ return this.fonction; } public int getN(){ return this.x; } @Override protected void paintComponent(Graphics pinceau) { // obligatoire : on crée un nouveau pinceau pour pouvoir le modifier plus tard Graphics secondPinceau = pinceau.create(); // obligatoire : si le composant n'est pas censé être transparent if (this.isOpaque()) { // obligatoire : on repeint toute la surface avec la couleur de fond secondPinceau.setColor(this.getBackground()); secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); } //si cliquer if(this.clique==true){ //carrer bleu secondPinceau.setColor(new Color(0, 127, 255)); secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); } //si selectionner if(selectionner==true){ //carrer orange secondPinceau.setColor(new Color(255, 127, 0)); secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); } //autrement carrer blanc secondPinceau.setColor(new Color(0,0,0)); secondPinceau.drawRect(0, 0, this.getWidth(), this.getHeight()); //si la fonction est de 8 (pour les premier menu) if(this.fonction==8){ //fond blanc secondPinceau.setColor(new Color(255, 255, 255)); secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); //on dessinne l'image correspondante Image nouveau=Toolkit.getDefaultToolkit().getImage("./IMAGE/nouveau.jpg"); if(this.selectionner==true){ //si elle est survoler un l'agrandi pour une mailleur visibilite secondPinceau.drawImage(nouveau, 0, 0, this.getWidth(), this.getHeight(), this); }else{ secondPinceau.drawImage(nouveau, this.getWidth()/20, this.getHeight()/20, this.getWidth()/20*18, this.getHeight()/20*18, this); } } //même principe pour les autre if suivant if(this.fonction==9){ secondPinceau.setColor(new Color(255, 255, 255)); secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); Image quitter=Toolkit.getDefaultToolkit().getImage("./IMAGE/quitter.jpg"); if(this.selectionner==true){ secondPinceau.drawImage(quitter, 0, 0, this.getWidth(), this.getHeight(), this); }else{ secondPinceau.drawImage(quitter, this.getWidth()/20, this.getHeight()/20, this.getWidth()/20*18, this.getHeight()/20*18, this); } } if(this.fonction==10){ secondPinceau.setColor(new Color(255, 255, 255)); secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); Image reprendre=Toolkit.getDefaultToolkit().getImage("./IMAGE/reprendre.png"); if(this.selectionner==true){ secondPinceau.drawImage(reprendre, 0, 0, this.getWidth(), this.getHeight(), this); }else{ secondPinceau.drawImage(reprendre, this.getWidth()/20, this.getHeight()/20, this.getWidth()/20*18, this.getHeight()/20*18, this); } } } }