Scusa ma l'eccezione viene lanciata sulla ImageIO.read() o sull'inserimento in a? Dove e come hai dichiarato la matrice a?
Scusa ma l'eccezione viene lanciata sulla ImageIO.read() o sull'inserimento in a? Dove e come hai dichiarato la matrice a?
Questa è la classe enemynav che poi importo in un altra classe.codice:package enemynav; import javax.imageio.*; import java.awt.image.*; import java.awt.*; import java.io.*; import java.awt.Graphics.*; import javax.swing.*; import java.util.*; public class enemynav { private int vit=1; private int str=1; private int vl=1; private Image[][] a; private File b; private BufferedImage img; public Image[][] enemynav() { try{b=new File("a.jpg");} catch(Exception e){System.out.print("Not Found\n");} int i; try{img=ImageIO.read(getClass().getResource("a.jpg"));} catch(IOException e){System.out.print("Not found");} for (i=0;i<10;i++); { for(int j=0;j<10;j++) { a[i][j]=img; //Exception } } return a; } public void setVit(int stra) { this.vit-=stra; } public int getVit() { return vit; } }
Hai letto la prima risposta che ho scritto?Originariamente inviato da rossirule2012
Continua a lanciare quell'eccezione quando voglio inserire l'immagine nell'array
codice:a[i][j]=img;
Nel codice da te postato non c'è nessuna inizializzazione dell'array.
effeffe
Ok mi correggo l'eccezione non è quella, ma è richiamata dalla classe principale
L'array table è già inizializzato; tuttavia l'operazione table=a.enemynav() solleva l'eccezione NullPointerException ma non capisco perchècodice:public galagaj() { try{table= a.enemynav();} catch(NullPointerException e) {System.out.println("Errore nel main");} this.setSize(800,600); this.setVisible(true); }![]()
A meno che nn lo inizializzi via reflection cosa che non credo tu sappia fare l'array in questione non è inizializzato in quanto è dichiarato come "private" e nella classe "enemynav" postata non vi è traccia di inizializzazione di tale oggetto.
Che poi il nullPointer ti viene stampato anche nell'altra classe cioè dove vai a richiamare il metodo "enemynav" è del tutto normale, molto probabilmente non hai chiaro che java propaga le eccezioni fino al chiamante....
Fammi un piacere metti questa istruzione come prima istruzione del metodo "enemynav" e vedrai come il null pointer non verrà più generato.
codice:a = new Image[1][10]();
C'era una ragione perché avevo chiesto per il codice e l'exception![]()
www.sitemeer.com » Quando un sito pare irraggiungibile
Se ti piace ci puoi trovare anche su Facebook
Senza tonde.Originariamente inviato da francesco.muia
A meno che nn lo inizializzi via reflection cosa che non credo tu sappia fare l'array in questione non è inizializzato in quanto è dichiarato come "private" e nella classe "enemynav" postata non vi è traccia di inizializzazione di tale oggetto.
Che poi il nullPointer ti viene stampato anche nell'altra classe cioè dove vai a richiamare il metodo "enemynav" è del tutto normale, molto probabilmente non hai chiaro che java propaga le eccezioni fino al chiamante....
Fammi un piacere metti questa istruzione come prima istruzione del metodo "enemynav" e vedrai come il null pointer non verrà più generato.
codice:a = new Image[1][10]();![]()
effeffe
Grazie a tutti per l'aiuto ora ho risolto. Scusate per la confusione![]()
Ma sorge un altro problema.
Questa è la classe in cui importo enemynav
Ma non riesco a "disegnare" le immagini che ho appena caricato.
Paint() disegna su jframe o ci vuola un(a) canvas?
codice:import javax.imageio.*; import java.awt.image.*; import java.awt.*; import java.io.*; import java.awt.Graphics.*; import javax.swing.*; import enemynav.*; public class galagaj extends JFrame { enemynav a = new enemynav(); Image[][] table=null; public galagaj() { try{table= a.enemynav();} catch(NullPointerException e) {System.out.println("Errore nel main");} this.setSize(800,600); this.setVisible(true); } public void print(Graphics g) { for (int i=0;i<10;i++) { for (int j=0;i<10;j++) { g.drawImage(table[i][j],i,j,null); } } } public static void main(String[] arg) { new galagaj(); } }