• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html#License
3 /*
4  *******************************************************************************
5  * Copyright (C) 1996-2010, International Business Machines Corporation and    *
6  * others. All Rights Reserved.                                                *
7  *******************************************************************************
8  */
9 package com.ibm.icu.dev.demo.impl;
10 import java.applet.Applet;
11 import java.applet.AppletContext;
12 import java.applet.AppletStub;
13 import java.applet.AudioClip;
14 import java.awt.Frame;
15 import java.awt.Image;
16 import java.awt.event.WindowAdapter;
17 import java.awt.event.WindowEvent;
18 import java.io.IOException;
19 import java.io.InputStream;
20 import java.net.URL;
21 import java.util.Enumeration;
22 import java.util.Iterator;
23 
24 /**
25  * <p>A Frame that runs an Applet within itself, making it possible
26  * for an applet to run as an application.  Usage:
27  *
28  * <pre>
29  * public class MyApplet extends Applet {
30  *     public static void main(String args[]) {
31  *         MyApplet applet = new MyApplet();
32  *         new AppletFrame("My Applet Running As An App", applet, 640, 480);
33  *     }
34  *     ...
35  * }
36  * <pre>
37  *
38  * @author Alan Liu
39  */
40 public class AppletFrame extends Frame implements AppletStub, AppletContext {
41 
42     /**
43      * For serialization
44      */
45     private static final long serialVersionUID = 818828281190757725L;
46     Applet applet;
47 
48     /**
49      * Construct a Frame running the given Applet with the default size
50      * of 640 by 480.
51      * When the Frame is closed, the applet's stop() method is called,
52      * the Frame is dispose()d of, and System.exit(0) is called.
53      *
54      * @param name the Frame title
55      * @param applet the applet to be run
56      */
AppletFrame(String name, Applet applet)57     public AppletFrame(String name, Applet applet) {
58         this(name, applet, 640, 480);
59     }
60 
61     /**
62      * Construct a Frame running the given Applet with the given size.
63      * When the Frame is closed, the applet's stop() method is called,
64      * the Frame is dispose()d of, and System.exit(0) is called.
65      *
66      * @param name the Frame title
67      * @param applet the applet to be run
68      * @param width width of the Frame
69      * @param height height of the Frame
70      */
AppletFrame(String name, Applet applet, int width, int height)71     public AppletFrame(String name, Applet applet, int width, int height) {
72         super(name);
73         this.applet = applet;
74         applet.setStub(this);
75 
76         setSize(width, height);
77         add("Center", applet);
78         show();
79         addWindowListener(new WindowAdapter() {
80             public void windowClosing(WindowEvent e) {
81                 AppletFrame.this.applet.stop();
82                 dispose();
83                 System.exit(0);
84             }
85         });
86 
87         applet.init();
88         applet.start();
89     }
90 
91     // AppletStub API
appletResize(int width, int height)92     public void appletResize(int width, int height) {
93         setSize(width, height);
94     }
95 
getAppletContext()96     public AppletContext getAppletContext() {
97         return this;
98     }
99 
getCodeBase()100     public URL getCodeBase() {
101         return null;
102     }
103 
getDocumentBase()104     public URL getDocumentBase() {
105         return null;
106     }
107 
getParameter(String name)108     public String getParameter(String name) {
109         return "PARAMETER";
110     }
111 
isActive()112     public boolean isActive() {
113         return true;
114     }
115 
116 
117     // AppletContext API
getApplet(String name)118     public Applet getApplet(String name) {
119         return applet;
120     }
121 
getApplets()122     public Enumeration getApplets() {
123         return null;
124     }
125 
getAudioClip(URL url)126     public AudioClip getAudioClip(URL url) {
127         return null;
128     }
129 
getImage(URL url)130     public Image getImage(URL url) {
131         return null;
132     }
133 
showDocument(URL url)134     public void showDocument(URL url) {}
showDocument(URL url, String target)135     public void showDocument(URL url, String target) {}
136 
showStatus(String status)137     public void showStatus(String status) {
138         System.out.println(status);
139     }
140 
setStream(String key, InputStream stream)141     public void setStream(String key, InputStream stream) throws IOException {
142     }
143 
getStream(String key)144     public InputStream getStream(String key) {
145         return null;
146     }
147 
getStreamKeys()148     public Iterator getStreamKeys() {
149         return null;
150     }
151 }
152