import java.awt.*; import javax.swing.*; import javax.imageio.*; import java.io.*; 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); try{ p2.drawImage(ImageIO.read(new File("./images/monstre.png")),0 ,0, 50, 50, this); } catch(IOException e){ System.out.println("Erreur d'ouverture"); } } if (this.caseN.type.equals("monstreglace")) { //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 de glace, Pv restant :" + caseN.getLabelPv(), (this.getWidth() / 2) - 90, (this.getHeight() / 2) - 10); try{ p2.drawImage(ImageIO.read(new File("./images/monstreglace.png")),0 ,0, 50, 50, this); } catch(IOException e){ System.out.println("Erreur d'ouverture"); } } if (this.caseN.type.equals("monstrefeu")) { //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 de feu, Pv restant :" + caseN.getLabelPv(), (this.getWidth() / 2) - 90, (this.getHeight() / 2) - 10); try{ p2.drawImage(ImageIO.read(new File("./images/monstrefeu.png")),0 ,0, 50, 50, this); } catch(IOException e){ System.out.println("Erreur d'ouverture"); } } 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); try{ p2.drawImage(ImageIO.read(new File("./images/or.png")),0 ,0, 50, 50, this); } catch(IOException e){ System.out.println("Erreur d'ouverture"); } } 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) - 45, (this.getHeight() / 2) - 10); p2.drawString("Arme :"+ caseN.getArme().getValue()+" Type :"+caseN.getArme().getType(), (this.getWidth() / 2) - 55, (this.getHeight() / 2) + 10); try{ p2.drawImage(ImageIO.read(new File("./images/truehero.png")),0 ,0, 50, 50, this); } catch(IOException e){ System.out.println("Erreur d'ouverture"); } } if (this.caseN.type.equals("berserker")) { //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("Berserker, Pv :" + caseN.getLabelPv(), (this.getWidth() / 2) - 45, (this.getHeight() / 2) - 10); p2.drawString("Arme :"+ caseN.getArme().getValue()+" Type :"+caseN.getArme().getType(), (this.getWidth() / 2) - 55, (this.getHeight() / 2) + 10); try{ p2.drawImage(ImageIO.read(new File("./images/truehero.png")),0 ,0, 50, 50, this); } catch(IOException e){ System.out.println("Erreur d'ouverture"); } } if (this.caseN.type.equals("mage")) { //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("Mage, Pv :" + caseN.getLabelPv(), (this.getWidth() / 2) - 45, (this.getHeight() / 2) - 10); p2.drawString("Arme :"+ caseN.getArme().getValue()+" Type :"+caseN.getArme().getType(), (this.getWidth() / 2) - 55, (this.getHeight() / 2) + 10); try{ p2.drawImage(ImageIO.read(new File("./images/truehero.png")),0 ,0, 50, 50, this); } catch(IOException e){ System.out.println("Erreur d'ouverture"); } } if (this.caseN.type.equals("tank")) { //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("Tank, Pv :" + caseN.getLabelPv(), (this.getWidth() / 2) - 45, (this.getHeight() / 2) - 10); p2.drawString("Arme :"+ caseN.getArme().getValue()+" Type :"+caseN.getArme().getType(), (this.getWidth() / 2) - 55, (this.getHeight() / 2) + 10); try{ p2.drawImage(ImageIO.read(new File("./images/truehero.png")),0 ,0, 50, 50, this); } catch(IOException e){ System.out.println("Erreur d'ouverture"); } } 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); try{ p2.drawImage(ImageIO.read(new File("./images/potion.png")),0 ,0, 50, 50, this); } catch(IOException e){ System.out.println("Erreur d'ouverture"); } } 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); try{ p2.drawImage(ImageIO.read(new File("./images/arme.png")),0 ,0, 50, 50, this); } catch(IOException e){ System.out.println("Erreur d'ouverture"); } } if (this.caseN.type.equals("armeglace")) { //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 de glace, Atk: " + caseN.getLabel(), (this.getWidth() / 2) - 40, (this.getHeight() / 2) - 10); try{ p2.drawImage(ImageIO.read(new File("./images/armeglace.png")),0 ,0, 50, 50, this); } catch(IOException e){ System.out.println("Erreur d'ouverture"); } } if (this.caseN.type.equals("armefeu")) { //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 de feu, Atk: " + caseN.getLabel(), (this.getWidth() / 2) - 40, (this.getHeight() / 2) - 10); try{ p2.drawImage(ImageIO.read(new File("./images/armefeu.png")),0 ,0, 50, 50, this); } catch(IOException e){ System.out.println("Erreur d'ouverture"); } } } 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 } }