| /* |
| ******************************************************************************* |
| * Copyright (C) 1996-2010, International Business Machines Corporation and * |
| * others. All Rights Reserved. * |
| ******************************************************************************* |
| */ |
| package com.ibm.icu.dev.demo.impl; |
| import java.applet.Applet; |
| import java.applet.AppletContext; |
| import java.applet.AppletStub; |
| import java.applet.AudioClip; |
| import java.awt.Frame; |
| import java.awt.Image; |
| import java.awt.event.WindowAdapter; |
| import java.awt.event.WindowEvent; |
| import java.io.IOException; |
| import java.io.InputStream; |
| import java.net.URL; |
| import java.util.Enumeration; |
| import java.util.Iterator; |
| |
| /** |
| * <p>A Frame that runs an Applet within itself, making it possible |
| * for an applet to run as an application. Usage: |
| * |
| * <pre> |
| * public class MyApplet extends Applet { |
| * public static void main(String args[]) { |
| * MyApplet applet = new MyApplet(); |
| * new AppletFrame("My Applet Running As An App", applet, 640, 480); |
| * } |
| * ... |
| * } |
| * <pre> |
| * |
| * @author Alan Liu |
| */ |
| public class AppletFrame extends Frame implements AppletStub, AppletContext { |
| |
| /** |
| * For serialization |
| */ |
| private static final long serialVersionUID = 818828281190757725L; |
| Applet applet; |
| |
| /** |
| * Construct a Frame running the given Applet with the default size |
| * of 640 by 480. |
| * When the Frame is closed, the applet's stop() method is called, |
| * the Frame is dispose()d of, and System.exit(0) is called. |
| * |
| * @param name the Frame title |
| * @param applet the applet to be run |
| */ |
| public AppletFrame(String name, Applet applet) { |
| this(name, applet, 640, 480); |
| } |
| |
| /** |
| * Construct a Frame running the given Applet with the given size. |
| * When the Frame is closed, the applet's stop() method is called, |
| * the Frame is dispose()d of, and System.exit(0) is called. |
| * |
| * @param name the Frame title |
| * @param applet the applet to be run |
| * @param width width of the Frame |
| * @param height height of the Frame |
| */ |
| public AppletFrame(String name, Applet applet, int width, int height) { |
| super(name); |
| this.applet = applet; |
| applet.setStub(this); |
| |
| setSize(width, height); |
| add("Center", applet); |
| show(); |
| addWindowListener(new WindowAdapter() { |
| public void windowClosing(WindowEvent e) { |
| AppletFrame.this.applet.stop(); |
| dispose(); |
| System.exit(0); |
| } |
| }); |
| |
| applet.init(); |
| applet.start(); |
| } |
| |
| // AppletStub API |
| public void appletResize(int width, int height) { |
| setSize(width, height); |
| } |
| |
| public AppletContext getAppletContext() { |
| return this; |
| } |
| |
| public URL getCodeBase() { |
| return null; |
| } |
| |
| public URL getDocumentBase() { |
| return null; |
| } |
| |
| public String getParameter(String name) { |
| return "PARAMETER"; |
| } |
| |
| public boolean isActive() { |
| return true; |
| } |
| |
| |
| // AppletContext API |
| public Applet getApplet(String name) { |
| return applet; |
| } |
| |
| public Enumeration getApplets() { |
| return null; |
| } |
| |
| public AudioClip getAudioClip(URL url) { |
| return null; |
| } |
| |
| public Image getImage(URL url) { |
| return null; |
| } |
| |
| public void showDocument(URL url) {} |
| public void showDocument(URL url, String target) {} |
| |
| public void showStatus(String status) { |
| System.out.println(status); |
| } |
| |
| public void setStream(String key, InputStream stream) throws IOException { |
| } |
| |
| public InputStream getStream(String key) { |
| return null; |
| } |
| |
| public Iterator getStreamKeys() { |
| return null; |
| } |
| } |