Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    225

    [Java] Problema con immagine

    Ciao a tutti!
    Ho un problema con questo pannello:
    codice:
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.event.*;
    
    public class PannelloFinPrincipale extends JPanel {
        private Image fornaio;
        
        public PannelloFinPrincipale() {
            super();
        
            Toolkit t = Toolkit.getDefaultToolkit();
            fornaio = t.getImage("fornaio.jpeg");
           
            MediaTracker m = new MediaTracker(this);
            m.addImage(fornaio, 1);
            
            try {
                m.waitForID(1);
            }
            catch (InterruptedException e) {
            }
        }
        
        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            
            setBackground(new Color(185,220,255));
            g.drawImage(fornaio, 500, 300, null);
        }
    
    }
    E questa è la classe che crea la finestra con questo pannello:
    codice:
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.event.*;
    
    public class Start {
        /** Metodo main che apre FinestraPrincipale. */ 
        public static void main(String[] args) {
            FinestraPrincipale fp = new FinestraPrincipale("Happy baker");
            Container c = fp.getContentPane();
            PannelloFinPrincipale p = new PannelloFinPrincipale();
            c.add(p);
            
            fp.addWindowListener(new ChiudiApp());
            fp.setVisible(true);
        }
        
        
    }
    Il problema è che non mi visualizza l'immagine "fornaio".
    Il codice mi sembra corretto...!
    GRAZIE MILLE!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Prova ad usare l'URL assoluta. Se l'immagine e' nella stessa cartella della classe.
    codice:
    URL img = this.getClass().getResource("fornaio.jpeg");
    fornaio = t.getImage(img);

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    225
    Intanto grazie!
    Ho corretto così il codice:
    codice:
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.event.*;
    import java.net.*;
    
    public class PannelloFinPrincipale extends JPanel {
        private Image fornaio;
        
        public PannelloFinPrincipale() {
            super();
        
            Toolkit t = Toolkit.getDefaultToolkit();
            URL img = this.getClass().getResource("fornaio.jpeg");
            fornaio = t.getImage(img);
    
            MediaTracker m = new MediaTracker(this);
            m.addImage(fornaio, 1);
            
            try {
                m.waitForID(1);
            }
            catch (InterruptedException e) {
            }
        }
        
        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            
            setBackground(new Color(185,220,255));
            g.drawImage(fornaio, 500, 300, null);
        }
    
    }
    Ma il compilatore mi dà questo errore:
    codice:
    Uncaught error fetching image:
    java.lang.NullPointerException
        at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:97)
        at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:107)
        at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:240)
        at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
        at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    E?possibile che sia il metodo getImage che da problemi. Prova ad usare il metodo statico read della classe ImageIO.
    codice:
    URL img = this.getClass().getResource("fornaio.jpeg");
    fornaio = ImageIO.read(img);

  5. #5
    Possibile che stai semplicemente sbagliando il path? Controlla la posizione di avvio rispetto alla posizione dell'immagine...
    WWW.UTMIB.COM site and forum administrator
    www.utmib.com/forum
    Unreal Tournament Men In Black Clan

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    225
    Intanto grazie a tutti!
    L'immagine è dentro la cartella "Immagine", che a sua volta è nella cartella "Happy Baker" che è nel desktop!
    Che path devo mettere?

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Devi mettere il path relativo alla posizione della tua classe. Dove si trova il file class?

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    225
    Quale file class intendi?
    Scusami, ma è la prima volta che tento di inserire un'immagine in una finestra!
    Tutto il mio programma è dentro la cartella "Happy Baker"...! L'immagine che vorrei mettere nella finestra l'ho salvata dentro la cartella "Immagine", che poi ho messo dentro a "Happy Baker"!
    GRAZIE!

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Il file class che usi per chiamare
    codice:
    this.getClass().getResource("");
    Se ho capito bene quindi tu hai Happy Baker che contiene
    - PannelloFinPrincipale.class
    - altri file class
    - cartella Immagine(nel quale e' presente la tua immagine)
    OK? In questo caso il path relativo al file class e' "Immagine/fornaio.jpeg".
    Prova ad usare questa stringa dentro al metodo getResource().

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    225
    Esatto, hai capito bene!
    Ho corretto così il codice....ma continua a darmi errore.
    codice:
    public class PannelloFinPrincipale extends JPanel {
        private Image fornaio;
        
        public PannelloFinPrincipale() {
            super();
        
            URL img = this.getClass().getResource("Immagine/fornaio.jpeg");
            fornaio = Toolkit.getDefaultToolkit().getImage(img);
            
    
            MediaTracker m = new MediaTracker(this);
            m.addImage(fornaio, 1);
            
            try {
                m.waitForID(1);
            }
            catch (InterruptedException e) {
            }
        }
        
        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            
            setBackground(new Color(185,220,255));
            //g.drawImage(fornaio, 600, 300, null);
        }
    
    }
    ERRORE:
    codice:
    Uncaught error fetching image:
    java.lang.NullPointerException
        at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:97)
        at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:107)
        at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:240)
        at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
        at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)
    GRAZIE MILLE!

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.