PDA

View Full Version : [java] array di gif


roberto76
12-01-2003, 21:14
Ciao a tutti :) ho un problema...sto realizzando una applicazione in java e all'interno di un JPanel dovrei inserire una scacchiera...mi sono creato una classe Casella dove tramite un metodo paint(Graphic g) mi disegno le caselle e a seconda delle caretteristiche delle caselle utilizzo

g.drawImage(imgs[i],x,y,this)

per far caricare immagini diverse

non riesco pero' a crearmi l'array di gif imgs[i]

ho provato in un modo che ho trovato su di un applet e ho provato ad applicarla alla mia applicazione in questo modo:

puplic class pannelloPrincipale extends JFrame {

......
public Image imgs[];
....


imgs=new Image[2];
imgs[0]=getImage(getCodeBase(),"nomefile.gif");
imgs[1]=getImage(getCodeBase(),"nomefile2.gif");

.....
}

ma mi da questi errori:

"pannelloPrincipale.java": Error #: 300 : method getCodeBase() not found in class applicazione.pannelloPrincipale at line 108, column 24

"pannelloPrincipale.java": Error #: 300 : method getImage(<any>, java.lang.String) not found in class applicazione.pannelloPrincipale at line 108, column 15


come posso risolvere? :muro:

vi ringrazio in anticipo :D

soalle
12-01-2003, 21:38
Quei metodi ti danno errore poiché non essendo applicati ad un oggetto (nomeoggetto.metodo()) il compilatore li va a cercare in this e naturalmente non li trova.

Comunque per l'array di Image avrei una soluzione alternativa... non esiste un costruttore diretto stile:

new Image("nomeImmagine.gif");

ma puoi comunque usare la classe swing ImageIcon:

ImageIcon img=new ImageIcon("nomeimmagine.gif");

Se proprio hai bisogno dell'immagine ImageIcon ha il metodo getImage() quindi:

Image img=new ImageIcon(...).getImage();

Ciaociao Soalle

roberto76
12-01-2003, 22:05
grassie :)

non ho capito una cosa pero':

come faccio a crearmi l'array?

Image[] imgs=new Image[2]

...

imgs[0]=new ImageIcon("1.gif").getImage();
imgs[1]=new ImageIcon("2.gif").getImage();

cosi'?

non so se ho scritto una caxxata :p ma non connetto piu' tanto :eek:

ciaooo Roberto

soalle
12-01-2003, 22:48
esattamente!!! ;)