Pegando uma imagem de um arquivo *.jar

A utilização de arquivos *.jar é muito frequente e algumas vezes poderiamos precisar pegar uma imagem que esteja em um desses arquivos. Para uma aplicação Java, você pode usar o método getResource(), no entanto em applets isso não é possível por causa dos requisitos de seguranças dos brawser, então em applets utilizaremos o método getResourceAsStream.

Observe o exemplo para uma aplicação e o exemplo para um Applet.

Aplicação [JDK1.1]:

String imgName = "figura.jpg";
URL imgURL = getClass().getResource(imgName);
Toolkit tk = Toolkit.getDefaultToolkit();
Image img = null;
try {
MediaTracker m = new MediaTracker(this);
img = tk.getImage(imgURL);
m.addImage(img, 0);
m.waitForAll();
}
catch (Exception e) {
e.printStackTrace();
}

Applet [JDK1.1]:

try {
MediaTracker m = new MediaTracker(this);
InputStream is = getClass().getResourceAsStream("imagem.gif");
BufferedInputStream bis = new BufferedInputStream(is);
byte[] bytes = new byte[10000];
int byteRead = bis.read(bytes,0,10000);
img = Toolkit.getDefaultToolkit().createImage(bytes,0,byteRead);
m.addImage(img, 0);
m.waitForAll();
}
catch(Exception e) {
e.printStackTrace();
}