2012-10-22 13 views
5

Sto provando ad aggiungere un'immagine a un fotogramma ma sembra che non funzioni. L'immagine creata da un ImageIcon dal file specificato. Il file immagine si trova nella directory della giunzione e il file java esiste.Come aggiungere un ImageIcon a un JFrame?

import java.awt.BorderLayout; 

import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 

    public class image { 

     public static void main(String args[]) 
     { 
      TimeFrame frame = new TimeFrame(); 
     } 
    } 

    class TimeFrame extends JFrame 
    { 
     //Image icon = Toolkit.getDefaultToolkit().getImage("me.jpg"); 
     ImageIcon icon = new ImageIcon("me.jpg"); 
     JLabel label = new JLabel(icon); 
     public TimeFrame(){ 
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      setTitle("My Frame"); 
      setSize(500,400); 
      //this.setIconImage(icon); 
      add(label,BorderLayout.CENTER); 
      setVisible(true); 
     } 


    } 
+0

Si prega di dare un'occhiata a come [aggiungere immagini a TUO PROGETTO] (http://stackoverflow.com/a/9866659/1057230) e questa [risposta] (http://stackoverflow.com/a/11372350/1057230) per ulteriori chiarimenti, se lo fai manualmente (senza IDE). –

risposta

5

Se la vostra icona è accanto al file TimeFrame Java, è necessario utilizzare

java.net.URL imgUrl = getClass().getResource("me.jpg"); 
ImageIcon icon = new ImageIcon(imgUrl); 

o

java.net.URL imgUrl = TimeFrame.class.getResource("me.jpg"); 
ImageIcon icon = new ImageIcon(imgUrl); 

Stai (probabilmente) attualmente cercando nella vostra directory di lavoro che si può produrre tramite

System.out.println(System.getProperty("user.dir")); 
+0

Come dice la documentazione getResource (...) Trova una risorsa con un nome specifico. Questo metodo restituisce null se non viene trovata alcuna risorsa con questo nome ... ma ancora non sono sicuro del motivo per cui non ha funzionato prima ... Ho usato questo e ha funzionato bene: Image image = ImageIO.read (new File (" SydneyOperaHouse.jpg ")); – Bernard

4

Ci proverai questo?

ImageIcon ImageIcon = new ImageIcon("me.jpg"); 
    Image Image = ImageIcon.getImage(); 
    this.setIconImage(Image); 
+0

23 ottobre 00:24:38 MacBook-Pro.local java [592] : CGContextGetCTM: non valida contesto 0x0 23 ottobre 00:24:38 MacBook-Pro.local java [592] : CGContextSetBaseCTM: non valida contesto 0x0 ottobre 23 00:24:38 MacBook-Pro.local java [592] : CGContextGetCTM: contesto non valido 0x0 ott 23 00:24:38 MacBook-Pro.local java [592] : CGContextSetBaseCTM: contesto non valido 0x0 – Bernard

+0

qui è il errore sto ottenendo ora! – Bernard

1

Basta cambiare la directory "src/me.jpg"

Problemi correlati