2010-04-08 63 views
1

我試圖在運行JApplet時從JAR文件加載PNG圖像。 我認爲文件加載正確 - 沒有錯誤。 但是不顯示。 img.png與MainClass.java文件放在同一個目錄中。 下面是代碼:在JApplet中加載PNG圖像時出現問題

InputStream imageURL = this.getClass().getResourceAsStream("img.png"); 
byte[] bytes = null; 
try { 
    bytes = new byte[imageURL.available()]; 
    System.out.println(imageURL.available()); 
    imageURL.read(bytes); 
} 
catch(Exception e) {System.out.println("bleah");} 

Image image = Toolkit.getDefaultToolkit().createImage(bytes); 
Image imageScaled = image.getScaledInstance(100, 150, Image.SCALE_SMOOTH); 
jLabel6 = new javax.swing.JLabel(new ImageIcon(imageScaled));` 

和HTML exerpt:

<APPLET codebase="classes" code="myapplet/MainClass.class" archive ="LittleApplet.jar" width=700 height=500></APPLET> 

的圖像,因爲我寫的,可能是閱讀,但在JLabel的不顯示。

我在想什麼/做錯了什麼?

在此先感謝您的回覆!

回答

0

這個工作對我來說:

URL imageURL = this.getClass().getResource("img.png"); 
Image image = Toolkit.getDefaultToolkit().createImage(imageURL); 
Image scaled = image.getScaledInstance(100, 150, Image.SCALE_SMOOTH); 
JLabel label = new JLabel(new ImageIcon(scaled)); 
0

刪除或註釋掉行

System.out.println(imageURL.available()); 

一旦你從一個流中讀取,它的將是空的,它不是一個簡單的複製,從閱讀流正在消耗流。

也是一個很好的做法,一旦你完成它的刷新/關閉流。

0

這可能只是因爲您在粘貼時切斷了代碼,但是您是否對視圖進行了無效操作以使其重繪?