Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    147
    Scusa ma l'eccezione viene lanciata sulla ImageIO.read() o sull'inserimento in a? Dove e come hai dichiarato la matrice a?

  2. #12
    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;
    	}
    	
    }
    Questa è la classe enemynav che poi importo in un altra classe.

  3. #13
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da rossirule2012
    Continua a lanciare quell'eccezione quando voglio inserire l'immagine nell'array

    codice:
    a[i][j]=img;
    Hai letto la prima risposta che ho scritto?

    Nel codice da te postato non c'è nessuna inizializzazione dell'array.
    effeffe

  4. #14
    Ok mi correggo l'eccezione non è quella, ma è richiamata dalla classe principale

    codice:
    public galagaj()
    	{
    		try{table= a.enemynav();} catch(NullPointerException e) {System.out.println("Errore nel main");}
    		this.setSize(800,600);
    		this.setVisible(true);
    	}
    L'array table è già inizializzato; tuttavia l'operazione table=a.enemynav() solleva l'eccezione NullPointerException ma non capisco perchè

  5. #15
    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]();

  6. #16
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    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

  7. #17
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    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]();
    Senza tonde.
    effeffe

  8. #18
    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();
    	
    } 
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.