Fix: allow logo's outside the appletloader.jar to be used.

This commit is contained in:
kappa1 2009-06-15 13:08:52 +00:00
parent ea7e7bdd0c
commit 3a35d60c30
1 changed files with 12 additions and 8 deletions

View File

@ -38,7 +38,6 @@ import java.awt.Color;
import java.awt.FontMetrics; import java.awt.FontMetrics;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Image; import java.awt.Image;
import java.awt.Toolkit;
import java.io.DataInputStream; import java.io.DataInputStream;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import java.io.File; import java.io.File;
@ -71,6 +70,8 @@ import java.util.jar.JarFile;
import java.util.jar.JarOutputStream; import java.util.jar.JarOutputStream;
import java.util.jar.Pack200; import java.util.jar.Pack200;
import javax.imageio.ImageIO;
import sun.security.util.SecurityConstants; import sun.security.util.SecurityConstants;
/** /**
@ -259,8 +260,8 @@ public class AppletLoader extends Applet implements Runnable, AppletStub {
errorColor = getColor("al_errorcolor", Color.red); errorColor = getColor("al_errorcolor", Color.red);
// load logos // load logos
logo = getImage("/" + getParameter("al_logo")); logo = getImage(getParameter("al_logo"));
progressbar = getImage("/" + getParameter("al_progressbar")); progressbar = getImage(getParameter("al_progressbar"));
//sanity check //sanity check
if(logo == null || progressbar == null) { if(logo == null || progressbar == null) {
@ -1112,11 +1113,14 @@ public class AppletLoader extends Applet implements Runnable, AppletStub {
*/ */
protected Image getImage(String s) { protected Image getImage(String s) {
try { try {
DataInputStream datainputstream = new DataInputStream(getClass().getResourceAsStream(s)); URL url = AppletLoader.class.getResource("/"+s);
byte abyte0[] = new byte[datainputstream.available()];
datainputstream.readFully(abyte0); // if logo not found in jar, look at URL
datainputstream.close(); if (url == null) {
return Toolkit.getDefaultToolkit().createImage(abyte0); url = new URL(getCodeBase(), s);
}
return ImageIO.read(url);
} catch (Exception e) { } catch (Exception e) {
/* */ /* */
} }