2010-04-08 5 views
1

Je tente de charger une image PNG à partir du fichier JAR lors de l'exécution de JApplet. Le fichier est, je pense, chargé correctement - il n'y a pas d'erreurs. Cependant, il n'est pas affiché. img.png est placé dans le même répertoire que le fichier MainClass.java. Voici le code:Problème lors du chargement d'une image PNG dans JApplet

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));` 

et Exerpt HTML:

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

L'image, comme je l'ai écrit, est probablement lu, mais pas affiché dans JLabel.

Qu'est-ce que je manque/fais mal?

Merci d'avance pour la réponse!

Répondre

0

Cela fonctionne pour moi:

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

supprimer ou commenter la ligne

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

Une fois que vous avez lu à partir d'un cours d'eau, ça va être vide, ne est pas une simple copie, la lecture de un flux consomme le flux.

Également une bonne pratique pour vider/fermer le flux une fois que vous avez terminé avec lui.

0

C'est peut-être simplement parce que vous coupez votre code lorsque vous collez, mais faites-vous invalider la vue pour la rendre repeinte?

Questions connexes