import java.applet.Applet;
import java.applet.AppletContext;
import java.applet.AppletStub;
import java.applet.AudioClip;
import java.awt.Button;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Panel;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Iterator;
public class MainClass extends Applet implements ActionListener
{
static MainClass myApplet;
static MyStub myStub;
Image im;
public void init()
{
System.out.println("Code base = " + getCodeBase());
System.out.println("Document base = " + getDocumentBase());
System.out.println("\ninit () called");
System.out.println("isActive () returns " + isActive());
Button b = new Button("Visit www.java2s.com");
b.addActionListener(this);
add(b);
b = new Button("Audio");
b.addActionListener(this);
add(b);
String imageName = getParameter("image");
if (imageName != null)
im = getImage(getCodeBase(), imageName);
}
public void start()
{
System.out.println("start () called");
System.out.println("isActive () returns " + isActive());
}
public void paint(Graphics g)
{
if (im != null)
g.drawImage(im, 0, 0, this);
}
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand().equals("Audio"))
{
String soundName = getParameter("audio");
if (soundName != null)
{
AudioClip ac = getAudioClip(getDocumentBase(), soundName);
ac.play();
}
return;
}
try
{
URL u = new URL("http://www.java2s.com");
getAppletContext().showDocument(u);
}
catch (MalformedURLException exc)
{
System.out.println(e);
}
}
public void stop()
{
System.out.println("stop () called");
System.out.println("isActive () returns " + isActive());
}
public void destroy()
{
System.out.println("destroy () called");
System.out.println("isActive () returns " + isActive());
}
public static void main(String[] args)
{
Frame frame = new Frame("AppletAndApp as an Application");
myApplet = new MainClass();
frame.add(new Panel().add(myApplet));
frame.addNotify();
myApplet.setStub(myStub = new MyStub(args));
myApplet.init();
frame.setSize(300, 200);
frame.setVisible(true);
myStub.setActive(true);
myApplet.start();
frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent w)
{
myStub.setActive(false);
myApplet.stop();
myApplet.destroy();
System.exit(0);
}
}
}
}class MyStub implements AppletStub
{
private boolean active = false;
private Hashtable ht = new Hashtable();
private MyContext context;
MyStub(String[] args)
{
context = new MyContext();
if ((args.length & 1) != 0)
return;
for (int i = 0; i < args.length; i += 2)
ht.put(args[i], args[i + 1]);
}
public boolean isActive()
{
return active;
}
public URL getDocumentBase()
{
URL u = null;
try
{
u = new URL("file:/C:./x.html");
}
catch (MalformedURLException e)
{
}
return u;
}
public URL getCodeBase()
{
URL u = null;
try
{
u = new URL("file:/C:./");
}
catch (MalformedURLException e)
{
}
return u;
}
public String getParameter(String name)
{
return (String) ht.get(name);
}
public AppletContext getAppletContext()
{
return context;
}
public void appletResize(int width, int height)
{
}
public void setActive(boolean active)
{
this.active = active;
}
}
class MyContext implements AppletContext
{
public AudioClip getAudioClip(URL url)
{
return Applet.newAudioClip(url);
}
public Image getImage(URL url)
{
Toolkit tk = Toolkit.getDefaultToolkit();
return tk.getImage(url);
}
public Applet getApplet(String name)
{
return null;
}
public Enumeration getApplets()
{
return null;
}
public void showDocument(URL url)
{
System.out.println("Showing document " + url);
}
public void showDocument(URL url, String frame)
{
try
{
showDocument(new URL(url.toString() + frame));
}
catch (MalformedURLException e)
{
}
}
public void showStatus(String message)
{
System.out.println(message);
}
public void setStream(String key, InputStream stream) throws IOException
{
}
public InputStream getStream(String key)
{
return null;
}
public Iterator
}
}
No comments:
Post a Comment