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

116 lines
4.4 KiB
Java

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