64 lines
2.8 KiB
Java
64 lines
2.8 KiB
Java
|
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
|
||
|
}
|
||
|
}
|