Package

Source Code of TrivialApplet

/*
  Trivial applet that displays a string - 4/96 PNL
*/

import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.net.URL;
import java.net.MalformedURLException;

import netscape.javascript.JSObject;

class AboutBox extends Frame {
  AboutBox(Menu aboutMenu, ActionListener[] actionListeners) {
    super("About Applet");
   
    addWindowListener(
      new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
          dispose();
        }
      });
   
    Button okButton = new Button("OK");
    okButton.addActionListener(
      new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          dispose();
        }
      });
   
    // Annoying use of flow layout managers.
    Panel labelPanel = new Panel();
    Panel buttonPanel = new Panel();
    Panel fieldPanel = new Panel();

    labelPanel.add(new Label("This applet's about box..."));
    buttonPanel.add(okButton);

    fieldPanel.add(new TextField(20));
    fieldPanel.add(new TextField(20));

    add(labelPanel, "North");
    add(buttonPanel, "Center");
    add(fieldPanel, "South");
   
    // test menu bar stuff.
    MenuBar menuBar = new MenuBar();
    aboutMenu = (Menu) cloneMenu(aboutMenu);
    for (int i = 0; i < actionListeners.length; i++)
      aboutMenu.getItem(i).addActionListener(actionListeners[i]);
    menuBar.add(aboutMenu);
    setMenuBar(menuBar);

    pack();
    show();
  }
 
  private MenuItem cloneMenu(MenuItem oldItem) {
    if (oldItem instanceof Menu) {
      Menu oldMenu = (Menu) oldItem;
      Menu newMenu = new Menu(oldMenu.getLabel());
      int count = oldMenu.getItemCount();
      for (int i = 0; i < count; i++) {
        newMenu.add(cloneMenu(oldMenu.getItem(i)));
      }
      return newMenu;
    } else {
      MenuItem newItem = new MenuItem(oldItem.getLabel());
      return newItem;
    }
  }
}

class ExceptionThread extends Thread {
  ExceptionThread() {
    start();
  }
 
  public void run() {
    throw new Error("this is an error!");
  }
}

public class TrivialApplet extends Applet {
  public Button goButton;
  public Button aboutButton;
  public TextField urlField;
  public PopupMenu contextMenu;
  public Menu aboutMenu;
  public ActionListener[] actionListeners;
  private static int appletCount;

  public void init() {
    ++appletCount;
 
    goButton = new Button("Go");
    aboutButton = new Button("About");
   
    String urlText = getParameter("URL");
    if (urlText == null)
      urlText = "http://www.apple.com";
   
    urlField = new TextField(urlText);
   
    ActionListener goListener =
      new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          try {
            URL location = new URL(urlField.getText());
            System.out.println("going to URL: " + location);
            JSObject window = JSObject.getWindow(TrivialApplet.this);
            if (window != null) {
              //window.eval("alert('going to location " + location + "');");
              window.eval("println('" + location + "')");
            }
            getAppletContext().showDocument(location, "_new");
          } catch (MalformedURLException mfue) {
          }
        }
      };
   
    ActionListener aboutListener =
      new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          new AboutBox(aboutMenu, actionListeners);
        }
      };
   
    goButton.addActionListener(goListener);
    aboutButton.addActionListener(aboutListener);
     
    add(goButton);
    add(aboutButton);
    add(urlField);
   
    // Try a pop-up menu, and a menu in the menubar.
    contextMenu = new PopupMenu();
    aboutMenu = new Menu("About");
   
    contextMenu.add(newItem("About", aboutListener));
    aboutMenu.add(newItem("About", aboutListener));
   
    contextMenu.add(newItem("Go", goListener));
    aboutMenu.add(newItem("Go", goListener));
   
    ActionListener errorListener = new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          new ExceptionThread();
        }
      };
    contextMenu.add(newItem("Error", errorListener));
    aboutMenu.add(newItem("Error", errorListener));
   
    ActionListener[] listeners = { aboutListener, goListener, errorListener };
    actionListeners = listeners;
   
    add(contextMenu);

    // add a mouse listener that causes the pop-up to appear appropriately.
    MouseListener mouseListener = new MouseAdapter() {
      public void mousePressed(MouseEvent e) {
        if (e.isPopupTrigger()) {
          e.consume();
          contextMenu.show(TrivialApplet.this, e.getX(), e.getY());
        }
      }
    };
   
    addMouseListener(mouseListener);
  }
 
  private MenuItem newItem(String title, ActionListener listener) {
    MenuItem item = new MenuItem(title);
    item.addActionListener(listener);
    return item;
  }
 
  private Frame getFrame() {
    Component p = this;
    while (p != null && !(p instanceof Frame))
      p = getParent();
    return (Frame)p;
  }
 
  // public void paint( Graphics g ) {}

    public boolean mouseEnter(Event evt, int x, int y) {
      showStatus("Welcome!");
    return true;
    }

    public boolean mouseExit(Event evt, int x, int y) {
      showStatus("See you later!");
    return true;
    }
   
  public void print(String message) {
    JSObject window = JSObject.getWindow(this);
    Object[] args = { message };
    window.call("println", args);
    }
   
    public int getAppletCount() {
      return appletCount;
    }
}
TOP

Related Classes of TrivialApplet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.