Chargement d'image dans un matrice
Bonjours,
Avec le bout de code ci-desous, j'aimerais savoir:
1. Si le constructeur de ma classe Case() charge une image, est ce que cette derniére sera mise dans ma matrice( grille[][] )?
Code:
1 2 3 4 5 6 7 8 9
|
for(int i=0; i<longueur; i++)
{
for(int j=0; j<lareur;j++)
{
grille[i][j]=new Case();
}
} |
chargement contrôlé -> MediaTracker
Ajoute un MediaTracker! ça donnerait qqch comme ça:
Citation:
Envoyé par chocoboy
Dsl, j'ai effacé une balise
// (...) tu l'ajoutes à la classe case.java
case.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
public class Case extends Canvas
{
Image i,im, img;
String imageItem;
dessin d;
/** MODIF ***** Media tracker */
protected MedaiTracker mt = new MediaTracker(this);
public static int TailleImage;
protected boolean franchissable;
protected boolean visible;
protected String image;
protected String combinaison;
public Case(String imageCase)
{
imageItem=imageCase;
franchissable=true;
visible=true;
Toolkit tk = Toolkit.getDefaultToolkit();
i = tk.getImage(imageItem+ ".jpg");
this.setPreferredSize(new Dimension(20,20));
//TailleImage=i.getHeight(this);
//System.out.println("gr=" + " " + gr);
this.setImage(i);
}
//Récup l'image et lui donne une nouvelle valeur
/** MODIF ***** Contrôle la completion du chargement */
public Image getImage()
{
try { mt.waitForID(1); } catch(InterruptedException e) {} finally {
return this.img;
}
}
public void setImage(Image img)
{
if(this.img!=i)
{
/** MODIF ***** ajoute le tracker */
mt.addImage(i, 1);
this.img=i;
}
}
//Permet de savoir si une case est franchissable
public boolean isFranchissable()
{
return this.franchissable;
}
public void setFranchissable( boolean value)
{
if (this.franchissable!=value)
{
franchissable=value;
}
}
// Permet de savoir si une case est visible
public boolean isVisible()
{
return this.visible;
}
public void setVisible(boolean value)
{
if(this.visible!=value)
{
visible=value;
}
}
//Récup et donne une nouvelle combinaison à la case
public String getCombinaison()
{
return combinaison;
}
public void setCombinaison(String value)
{
if(this.combinaison!=value)
{
combinaison=value;
}
}
public void afficher(String ImageItem, int _x, int _y)
{
if(this.visible==true)
{
Toolkit tk = Toolkit.getDefaultToolkit();
i = tk.getImage(imageItem+ ".jpg");
repaint();
System.out.println("i=" + " " + i);
}
}
public void paint(Graphics gr, int _xx, int _yy)
{
System.out.println("Appel Paint1");
if(this.visible==true)
{
System.out.println("Appel Paint2");
if(i!=null)
{
System.out.println("xx=" + " " + _xx);
System.out.println("yy=" + " " + _yy);
System.out.println("g=" + " " + gr);
gr.drawImage(i, _xx, _yy, this);
System.out.println("Appel Paint3");
}
else
{
System.out.println("PAS DE DESSIN");
}
}
}
} |
Le truc c qu'il agit comme si je ne faisait pas de chargement d'image, pouvez vous m'aider a savoir pkoi il fait sa?
8-)