SAe/SAe2.1/commentente/SAé/VueCase.java

64 lines
2.8 KiB
Java
Raw Normal View History

2023-05-19 17:13:41 +02:00
import java.awt.*;
import javax.swing.*;
public class VueCase extends JPanel {
private Case caseN; //Référence vers l'objet Case associé à la vue
public VueCase(Case c) {
this.caseN = c; //Associe l'objet Case passé en paramètre à la vue
this.repaint(); //Redessine la vue
}
@Override
public void paintComponent(Graphics p) {
super.paintComponent(p);
Graphics p2 = p.create();
if (this.isOpaque()) {
//Obligatoire : on repeint toute la surface avec la couleur de fond
p2.setColor(this.getBackground());
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
}
if (this.caseN.type.equals("monstre")) {
//Dessine un rectangle rouge pour représenter un monstre
p2.setColor(Color.RED);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
p2.drawString("Monstre, Pv restant :" + caseN.getLabelPv(), (this.getWidth() / 2) - 50, (this.getHeight() / 2) - 10);
}
if (this.caseN.type.equals("or")) {
//Dessine un rectangle jaune pour représenter de l'or
p2.setColor(Color.YELLOW);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
p2.drawString("Or, Points obtenu :" + caseN.getLabel(), (this.getWidth() / 2) - 50, (this.getHeight() / 2) - 10);
}
if (this.caseN.type.equals("hero")) {
//Dessine un rectangle cyan pour représenter le héro
p2.setColor(Color.CYAN);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
p2.drawString("Hero, Pv :" + caseN.getLabelPv(), (this.getWidth() / 2) - 30, (this.getHeight() / 2) - 10);
}
if (this.caseN.type.equals("potion")) {
//Dessine un rectangle vert pour représenter une potion
p2.setColor(Color.GREEN);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
p2.drawString("Potion, Pv rendu: " + caseN.getLabel(), (this.getWidth() / 2) - 60, (this.getHeight() / 2) - 10);
}
if (this.caseN.type.equals("arme")) {
//Dessine un rectangle bleu pour représenter une arme
p2.setColor(Color.BLUE);
p2.fillRect(0, 0, this.getWidth(), this.getHeight());
p2.setColor(Color.BLACK);
p2.drawString("Arme, Atk: " + caseN.getLabel(), (this.getWidth() / 2) - 40, (this.getHeight() / 2) - 10);
}
}
public void setCase(Case c) {
this.caseN = c; //Met à jour la référence vers l'objet Case associé à la vue
this.repaint(); //Redessine la vue pour refléter le changement de case
}
}