01: //*** Sample AppletHost to test class loading
02: //*** README: Here's a sample invocation that'll work if
03: // you're connected:
04: //
05: // java AppletHost http://condor.depaul.edu/dmumaugh/JDP/test/misc.class \
06: // misc
07: //
08: // The 1st command-line argument is the full URL, which includes the applet file
09: // misc.class.
10: //
11: // The 2nd command-line argument is the name of the applet, misc. I should do
12: // more work and extract the name from the URL (next release).
13: // Below is the RemoteClassLoader that you'll need.
14:
15: import java.applet.Applet;
16: import java.awt.Frame;
17: import java.awt.event.WindowAdapter;
18: import java.awt.event.WindowEvent;
19: import java.net.URL;
20: public class AppletHost {
21: public static void main(String[ ] args) throws Exception {
22: if (args.length < 2)
23: throw new Exception(
24: "Usage: AppletHost <URL> <applet name>");
25: URL url = new URL(args[0]);
26: new AppletHost().do_it(url, args[1]);
27: }
28: private void do_it(URL url, String name) throws Exception {
29: // Download and instantiate the applet.
30: URL[ ] urls = {url};
31: RemoteClassLoader rcl = new RemoteClassLoader(urls);
32: Class c = rcl.loadClass(name);
33: Applet a = (Applet) c.newInstance();
34: new MyFrame(a, 800, 400);
35: }
36: }
37: // Framed window in which to display the applet.
38: class MyFrame extends Frame {
39: public MyFrame(Applet a, int w, int h) throws Exception {
40: addWindowListener(new WindowAdapter() {
41: public void windowClosing(WindowEvent e) {
42: e.getWindow().dispose();
43: System.exit(0);
44: }});
45: setTitle(a.getClass().getName());
46: setSize(w, h);
47: add("Center", a);
48: a.init();
49: show();
50: a.start();
51: }
52: }