2012-01-06 92 views
1

SO這些AER兩個那Im使用不同的文件:圖像在幀不加載

public class TestFunc { 

    static BufferedImage img; 
    public static void main(String[] args){ 


     JFrame frame = new JFrame("Display"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(600, 400); 

     ShowImage I = new ShowImage(); 
     frame.getContentPane().add(I); 
     frame.setVisible(true); 

    } 
} 

,另一個:

public final class ShowImage extends JPanel{ 

Image image; 

public ShowImage(){ 

    super(); 
    image = Toolkit.getDefaultToolkit().getImage("Sunset.jpg"); 

} 

public void paintComponent(Graphics g){ 
    g.drawImage(image, 0, 0, this); 

} 

} 

然而,存在被顯示在所述框架上任何操作,並它顯得空白。我對此很新,無法弄清楚。

謝謝。

+0

其實沒有什麼不妥之處書面 - 它應該工作的罰款。當您運行程序時,「Sunset.jpg」是當前目錄中的有效圖像嗎? – 2012-01-06 12:06:12

+0

是的,我嘗試了不同的圖像,我不知道爲什麼它不顯示。 – Achint 2012-01-06 12:16:50

+0

即使圖像出現在我的目錄中,也需要全路徑名稱。它的作品。是否因爲存在不同的包? (實際上現在只有一個軟件包,其中所有的工作文件都是這樣) – Achint 2012-01-06 12:21:57

回答

2

嘗試使用一個JLabel裏面一個ImageIcon:

JFrame frame = new JFrame("Display"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(600, 400); 
     frame.setVisible(true); 

     JPanel jp = new JPanel(); 
     frame.add(jp); 
     jp.add(new JLabel(new ImageIcon("d:\\temp\\me.JPG"))); 

     frame.pack(); 
+0

'frame.setSize(600,400); //一旦'frame.pack(); // good'被調用。用於'ImageIcon'和'pack()'的+1。 – 2012-01-06 12:21:59

+0

如果我給出完整的路徑名,這也適用。謝謝!無論如何,與先前的方法有什麼不同?是的,刪除了調整大小。 – Achint 2012-01-06 12:22:38

+0

看起來圖像不是您期望的那樣,或者至少沒有被搜索到您希望搜索的位置。檢查路徑。 – 2012-01-06 12:24:07