Ciao
a) va bene questo?
codice:
import java.awt.Component;
import java.awt.*;
import java.awt.event.*;
import java.net.*;

public class Immagine extends Panel{
URL URLImmagine = null;
String fileImmagine = null;
int posX=0;
int posY=0;
int flagOrigine = 0;

public Immagine(String in,int x, int y) {
super();
fileImmagine = in;
flagOrigine =0;
posX=x;
posY=y;
this.setLayout(null);
this.setSize(40,40);
}

public Immagine(URL in,int x, int y) {
super();
URLImmagine = in;
flagOrigine =1;
posX=x;
posY=y;
this.setLayout(null);
this.setSize(40,40);
}

public void paint(Graphics g){
if (flagOrigine ==0)
g.drawImage(getToolkit().getImage(fileImmagine),posX,posY,this);
else g.drawImage(getToolkit().getImage(URLImmagine),posX,posY,this);
}

public void update(Graphics g)
{
paint(g);
}

}
per gli altri due punti cerco nela documentazione e ti faccio sapere.

Grazie
Roberto