2014-02-11 155 views
0

我正在使用NetBeans,並試圖從我的磁盤加載圖像。該方案不給我任何錯誤,但框架不彈出。 ?我嘗試使用其他標籤只有文本,它工作得很好。我不認爲我的方法調用圖像有什麼問題,只是出於某種原因框架不會顯示?java-誰能告訴我爲什麼這個圖像不會加載?

import java.applet.Applet; 
import java.awt.*; 
import java.awt.image.*; 
import java.io.*; 
import java.net.URL; 
import javax.imageio.*; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class Play { 

    /** 
    * @param args 
    *   the command line arguments 
    */ 
    public static void main(String[] args) { 
     JFrame frame = new JFrame("window"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     JLabel emptyLabel = new JLabel("yo"); 
     BufferedImage img = null; 
     try { 
      img = ImageIO.read(new File("C:\\Users\\anon\\Desktop\\alien.png")); 
     } catch (IOException e) { 
     } 

     emptyLabel.setPreferredSize(new Dimension(175, 100)); 
     frame.getContentPane().add(img, BorderLayout.CENTER); 
     frame.pack(); 
     frame.setVisible(true); 
    } 

} 
+3

考慮打印異常按摩而不是忽略異常。在catch塊中添加'e.printStackTrace()'。 – Pshemo

+1

你怎麼知道沒有錯?你明確地忽略了拋出的任何異常。 –

+0

您還需要FORWARD-SLASHES「C:/../.../.../。不是後向的 – zee

回答

3

這是否甚至編譯?

frame.getContentPane().add(img, BorderLayout.CENTER); 

您正在嘗試將BufferedImage添加到JPanel中。你可能打算創建一個JPanel並用這樣的東西「添加」圖像...

protected void paintComponent(Graphics g) { 
    super.paintComponent(g); 
    g.drawImage(img, 0, 0, this);   
} 
+2

+ 1或者只是將圖像設置爲ImageIcon並添加標籤。emptyLabel.setIcon(new ImageIcon(img)); frame.add(emptyLabel);' –

+0

JLabel有什麼問題?同時,您應該傳遞這作爲ImageObserver參數drawImage – MadProgrammer

+0

@MadProgrammer謝謝,我添加了ImageObserver。(我犯了99%的時間將它設置爲null。)JLabel也可以。 – whiskeyspider

相關問題