// -----------------------------------------------------------------
// The following classes are defined in the standard java awt class
//   libraries,  and are described in the book:
//   "Java in a Nutshell", by David Flanagan.
// -----------------------------------------------------------------

// java.awt.BorderLayout -  page 240 
extern public class BorderLayout extends LayoutManager in "java.awt" { 
// should be extends Object implements LayoutManager
  public BorderLayout(int hgap, int vgap);
  public void addLayOutComponent(String name, Component comp);
  public void layoutContainer(Container target);
  public Dimension minimumLayoutSize(Container target);
  public Dimension perferredLayoutSize(Container target);
  public void removeLayoutComponent(Component comp);
  public String toString(); // overrides Object.toString()
}

// java.awt.Button - page 240
extern public class Button extends Component in "java.awt" {
  public Button(String label);
  public synchronized void addNotify(); // overrides Component.addNotify();
  public String getLabel();
  public void setLabel(String label);
}

// java.awt.Canvas - page 240
extern public class Canvas extends Component in "java.awt" {
  public Canvas();
  public synchronized void addNotify(); // overrides Component.addNotify();
  public void paint(Graphics g); // overrides Component.paint()
}
 
// java.awt.CardLayout - page 241
extern public class CardLayout extends LayoutManager in "java.awt" {
// should be extends Object implements LayoutManager
  public CardLayout(int hgap, int vgap);
  public void addLayoutComponent(String name, Component comp);
  public void first(Container parent);
  public void last(Container parent);
  public void layoutContainer(Container parent);
  public Dimension minimumLayoutSize(Container parent);
  public void next(Container parent);
  public Dimension preferredLayoutSize(Container parent);
  public void previous(Container parent);
  public void removeLayoutComponent(Component comp);
  public void show(Container parent, String name);
  public String toString(); // overrides Object.toString();
}

// java.awt.Checkbox - page 241
extern public class Checkbox extends Component in "java.awt" {
  public Checkbox(String label, CheckboxGroup group, boolean state);
  public synchronized void addNotify(); // overrides Component.addNotify();
  public CheckboxGroup getCheckboxGroup();
  public String getLabel();
  public boolean getState();
  public void setCheckboxGroup(CheckboxGroup g);
  public void setLabel(String label);
  public void setState(boolean state);
}

// java.awt.CheckboxGroup - page 242
extern public class CheckboxGroup extends Object in "java.awt" {
  public CheckboxGroup(); // empty
  public Checkbox getCurrent();
  public synchronized void setCurrent(Checkbox box);
  public String toString(); // overrides Object.toString()
}

// java.awt.CheckboxMenuItem - page 242
extern public class CheckboxMenuItem extends MenuItem in "java.awt" {
  public CheckboxMenuItem(String label);
  public synchronized void addNotify(); // overrides Component.addNotify();
  public boolean getState();
  public String paramString(); // overrides MenuItem.paramString()
  public void setState(boolean t);
}
 
// java.awt.Choice - page 243
extern public class Choice extends Component in "java.awt" {
  public Choice();
  public synchronized void addItem(String item);
  public synchronized void addNotify(); // overrides Component.addNotify();
  public int countItems();
  public String getItem(int index);
  public int getSelectedIndex();
  public String getSelectedItem();
  public synchronized void select(int pos); // throws IllegalArgumentException
  // public void select(String str);
}


// java.awt.Color - page 243
// see also joos.lib.JoosConstants for color constants
extern public class Color in "java.awt" {
  public Color(int r, int g, int b);
  public Color brighter();
  public Color darker();
  public boolean equals(Object obj); // overrides Object.equals()
  public int getBlue();
  public int getGreen();
  public int getRGG();
  public int getRed();
  public String toString(); // overrides Ojbect.toString();
}  

// java.awt.Component - page 244
// should be extends Object, but need to stick in ImageObserver
extern public abstract class Component extends ImageObserver in "java.awt" {
  public Component();
  public void addNotify();
  public Rectangle bounds();
  public int checkImage(Image image, ImageObserver observer);
  public Image createImage(int width, int height);
  public void deliverEvent(Event e);
  public synchronized void disable();
  public synchronized void enable();
  // public void enable(boolean cond);
  public Color getBackground();
  // public synchronized ColorModel getColorModel();
  public Font getFont();
  public FontMetrics getFontMetrics(Font font);
  public Color getForeground();
  public Graphics getGraphics();
  public Container getParent();
  // public ComponentPeer getPeer();
  public Toolkit getToolkit();
  public boolean gotFocus(Event evt, Object what);
  public boolean handleEvent(Event evt);
  public synchronized void hide();
  public boolean ImageUpdate(Image img, int flags, int x, int y, int w, int h);
  public synchronized boolean inside(int x, int y);
  public void invalidate();
  public boolean isEnabled();
  public boolean isShowing();
  public boolean isValid();
  public boolean isVisible();
  public boolean keyDown(Event evt, int key);
  public boolean keyUp(Event evt, int key);
  public void layout();  // empty
  public void list();
  public Component locate(int x, int y);
  public Point location();
  public boolean lostFocus(Event evt, Object what);
  public Dimension minimumSize();
  public boolean mouseDown(Event evt, int x, int y);
  public boolean mouseDrag(Event evt, int x, int y);
  public boolean mouseEnter(Event evt, int x, int y);
  public boolean mouseExit(Event evt, int x, int y);
  public boolean mouseMove(Event evt, int x, int y);
  public boolean mouseUp(Event evt, int x, int y);
  public void move(int x, int y);
  public void nextFocus();
  public void paint(Graphics g); // empty
  public void paintAll(Graphics g);
  public boolean postEvent(Event e);
  public Dimension preferredSize();
  // public boolean prepareImage(Image image,ImageObserver observer);
  public void print(Graphics g);
  public void printAll(Graphics g);
  public synchronized void removeNotify();
  public void repaint();
  public void requestFocus();
  public synchronized void reshape(int x, int y, int width, int height);
  public void resize(int width, int height);
  public synchronized void setBackground(Color c);
  public synchronized void setFont(Font f); 
  public synchronized void setForeground(Color c);
  public synchronized void show();
  // public void show(boolean cond);
  public Dimension size();
  public String toString(); // overrides Object.toString()
  public void update(Graphics g);
  public void validate();
}

// java.awt.Container - page 246
// see also joos.lib.JoosContainer for add(Sring name, Component comp)
extern public abstract class Container extends Component in "java.awt" {  
  public Container();
  public Component add(Component comp);
  // public Component add(String name, Component comp);
  // public Component add(Component comp, int pos);
  public synchronized void addNotify(); // overrides Component.addNotify()
  public int countComponents();
  public void deliverEvent(Event e);
  public synchronized Component getComponent(int n);
  public LayoutManager getLayout();
  public Insets insets();
  public synchronized void layout(); // overrides Component.layout()
  //public void list(PrintStream out, int indent);// overrides Component.list()
  public Component locate(int x, int y); // overrides Component.locate()
  public synchronized Dimension minimumSize(); // overrides Component
  public void paintComponents(Graphics g);
  public synchronized Dimension preferredSize(); // overrrides Component
  public void printComponents(Graphics g);
  public synchronized void remove(Component comp);
  public synchronized void removeAll();
  public synchronized void removeNotify(); // overrides Component
  public void setLayout(LayoutManager mgr);
  public synchronized void validate(); // overrides Component 
}

// java.awt.Dialog - page 247
extern public class Dialog extends Window in "java.awt" {
  public Dialog(Frame parent, String title, boolean modal); 
  public synchronized void addNotify(); // overrides Window
  public String getTitle();
  public boolean isModal();
  public boolean isResizable();
  public void setResizable(boolean resizable);
  public void setTitle(String title);
}

// java.awt.Dimension - page 248
// see also joos.lib.Dimension
extern public class Dimension extends Object in "java.awt" {
  public Dimension(int width, int height);
  public String toString(); // overrides Object.toString() 
}

// java.awt.Event - page 248
// see also java.lib.JoosConstants
// see also java.lib.JoosEvent
extern public class Event extends Object in "java.awt" {
  public Event(Object target, int id, Object arg);
  public boolean controlDown();
  public boolean metaDown();
  public boolean shiftDown();
  public String toString(); // overrides Object.toString()
  public void translate(int x, int y);
}

// java.awt.FileDialog - page 250
// see also java.lib.JoosConstants 
extern public class FileDialog extends Dialog in "java.awt" {
  public FileDialog(Frame parent, String title, int mode);
  public synchronized void addNotify(); // overrides Dialog.addnotify()
  public String getDirectory();
  public String getFile();
  // public FilenameFilter getFilenameFilter();
  public int getMode();
  public void setDirectory(String dir);
  public void setFile(String file);
  // public void setFilenameFilter(FilenameFilter filter);
}

// java.awt.FlowLayout - page 250  
// see also java.lib.JoosConstants 
extern public class FlowLayout extends LayoutManager in "java.awt" {
// should be extends Object implements LayoutManager
  public FlowLayout(int align, int hgap, int vgap);
  public void addLayoutComponent(String name, Component comp);
  public void layoutContainer(Container target);
  public Dimension minimumLayoutSize(Container target);
  public Dimension preferredLayoutSize(Container target);
  public void removeLayoutComponent(Component comp); // empty
  public String toString(); // overrides Object.toString()
}

// java.awt.Font - page 251
//   also see joos.lib.JoosConstants
extern public class Font extends Object in "java.awt" {
  public Font(String name, int style, int size);
  public boolean equals(Object obj); // overrides Object.equals()
  public String getFamily();
  public String getName();
  public int getSize();
  public int getStyle();
  public boolean isBold();
  public boolean isItalic();
  public boolean isPlain();
  public String toString(); // overrides Object.toString();
}

// java.awt.FontMetrics - page 252
extern public class FontMetrics extends Object in "java.awt" {
  public FontMetrics(Font font);  // should be protected 
  public int charWidth(int ch);
  public int getAscent();
  public int getDescent();
  public Font getFont();
  public int getHeight();
  public int getLeading();
  public int getMaxAdvance();
  public int getMaxAscent();
  public int getMaxDecent();
  public int getMaxDescent();
  public int stringWidth(String str);
  public String toString(); // overrides Object
}

// java.awt.Frame - page 252
//   also see joos.lib.JoosConstants
extern public class Frame extends Window in "java.awt" { 
// implements MenuContainer
  public Frame(String title);
  public synchronized void addNotify(); // overrides Window.addNotify()
  public synchronized void dispose();   // overrides Window.dispose()
  public int getCursorType();
  public Image getIconImage();
  public MenuBar getMenuBar();
  public String getTitle();
  public boolean IsResizable();
  // public synchronized void remove(MenuComponent m); // problem with override
                                                       // of remove in Container
  public void SetCursor(int cursorType);
  public void setIconImage(Image image);
  public synchronized void setMenuBar(MenuBar mb);
  public void setResizable(boolean resizable);
  public void setTitle(String title);
}

// java.awt.Graphics - page 254
extern public abstract class Graphics extends Object in "java.awt" {
  public Graphics();
  public abstract void clearRect(int x, int y, int width, int height); 
  public abstract void clipRect(int x, int y, int width, int height);  
  public abstract void copyArea(int x, int y, int width, int height, 
                                                            int dx, int dy);
  public Graphics create(int x, int y, int width, int height);
  public abstract void dispose();  
  public void draw3DRect(int x, int y, int width, int height, boolean raised); 
  public abstract void drawArc(int x, int y, int width, int height, 
                                  int startAngle, int arcAngle); 
  public abstract boolean drawImage(Image img, int x, int y, 
                                        ImageObserver observer); 
  public abstract void drawLine(int x1, int y1, int x2, int y2); 
  public abstract void drawOval(int x, int y, int width, int height); 
  public void drawPolygon(Polygon p);
  public void drawRect(int x, int y, int width, int height);
  public abstract void drawRoundRect(int x, int y, int width, int height, 
                               int arcWidth, int arcHeight);
  public abstract void drawString(String str, int x, int y);  
  public void fill3DRect(int x, int y, int width, int height, boolean raised); 
  public abstract void fillArc(int x, int y, int width, int height, 
                               int startAngle, int arcAngle); 
  public abstract void fillOval(int x, int y, int width, int height); 
  public void fillPolygon(Polygon p);
  public abstract void fillRect(int x, int y, int width, int height); 
  public abstract void fillRoundRect(int x, int y, int width, int height,
                                 int arcWidth, int arcHeight);
  public void finalize();
  public abstract Rectangle getClipRect();
  public abstract Color getColor(); 
  public abstract Font getFont(); 
  public abstract FontMetrics getFontMetrics(Font f);
  public abstract void setColor(Color c); 
  public abstract void setFont(Font font); 
  public abstract void setPaintMode(); 
  public abstract void setXORMode(Color c1);

  public String toString(); // overrides Object
  public abstract void translate(int x, int y); 
}

// java.awt.GridBagConstraints - page 255
//    see also joos.lib.JoosConstants
//    see also joos.lib.JoosGridBagConstraints
extern public class GridBagConstraints extends Object in "java.awt" {
// implements Cloneable
  public GridBagConstraints();
}

// java.awt.GridBagLayout - page 256
//      see also joos.lib.JoosConstants 
extern public class GridBagLayout extends LayoutManager in "java.awt" {
// implements LayoutManager
  public GridBagLayout();
  public void addLayOutComponent(String name, Component comp);
  public GridBagConstraints getConstraints(Component comp);
  public Point getLayoutOrigin();
  public void layoutContainer(Container target);
  public Point location(int x, int y);
  public Dimension minimumLayoutSize(Container target);
  public Dimension perferredLayoutSize(Container target);
  public void removeLayoutComponent(Component comp); // empty
  public void setConstraints(Component comp, GridBagConstraints constraints);
  public String toString(); // overrides Object.toString()
}

// java.awt.GridLayout - page 257
extern public class GridLayout extends LayoutManager in "java.awt" {
  // implements LayoutManager
  public GridLayout(int rows, int cols);
  public void addLayOutComponent(String name, Component comp);
  public void layoutContainer(Container parent);
  public Dimension minimumLayoutSize(Container parent);
  public Dimension perferredLayoutSize(Container parent);
  public void removeLayoutComponent(Component comp); // empty
  public String toString(); // overrides Object.toString();
}

// java.awt.Image - page 258
// see also joos.lib.JoosConstants 
extern public abstract class Image extends Object in "java.awt" {
  public Image();
  public abstract void flush();
  public abstract Graphics getGraphics();
  public abstract int getHeight(ImageObserver observer);
  public abstract Object getProperty(String name, ImageObserver obs);
  public abstract ImageProducer getSource();
  public abstract int getWidth(ImageObserver observer);
}

// java.awt.image.ImageConsumer - page 275
// should be an interface - Do not try to extend this in a JOOS program
extern public abstract class ImageConsumer extends Object in "java.awt.image" {
  public ImageConsumer();
  public abstract void imageComplete(int status);
  // public abstract void setColorModel(ColorModel m);
  public abstract void setDimensions(int width, int height);
  public abstract void setHints(int hintflags);
}

// java.awt.image.ImageObserver - page 276
// should be an interface - DO not try to extend this in a JOOS program
extern public abstract class ImageObserver extends Object in "java.awt.image" {
  public ImageObserver();
  public abstract boolean imageUpdate(Image img, int infoflags,
                                      int x, int y, int w, int h);
}

// java.awt.image.ImageProducer - page 276
// should be an interface - do not try to extend this in a JOOS program
extern public abstract class ImageProducer extends Object in "java.awt.image" {
  public ImageProducer();
  public abstract void addConsumer(ImageConsumer ic);
  public abstract boolean isConsumer(ImageConsumer ic);
  public abstract void removeConsumer(ImageConsumer ic);
  public abstract void requestTopDownLeftRightResend(ImageConsumer ic);
  public abstract void startProduction(ImageConsumer ic);
}
                        
// java.awt.Insets - page 258
extern public class Insets extends Object in "java.awt" { 
  // implements Cloneable
  public Insets(int top, int left, int bottom, int right);
  public String toString(); // overrides Object.toString()
}
 
// java.awt.Label - page 259
//    see also joos.lib.JoosConstants (note that you must use
//            LABEL_CENTER() instead of CENTER,  same for LEFT and RIGHT.
extern public class Label extends Component in "java.awt" {
  public Label(String label, int alignment);
  public synchronized void addNotify(); // overrides Component.addNotify()
  public int getAlignment();
  public void setAlignment(int alignment); // throws IllegalArgument Exc
  public String getText();
  public void setText(String s);
}

// java.awt.LayoutManager - page 259
//    should be public abstract interface LayoutManager 
//    do NOT try to extend this is a JOOS program 
extern public abstract class LayoutManager extends Object in "java.awt" {
  public LayoutManager();
  public abstract void addLayoutComponent(String name, Component comp);
  public abstract void layoutContainer(Container parent);
  public abstract Dimension minimumLayoutSize(Container parent);
  public abstract Dimension preferredLayoutSize(Container parent);
  public abstract void removeLayoutComponent(Component comp);
}

// java.awt.List - page 260
extern public class List extends Component in "java.awt" {
  public List(int rows, boolean multipleSelections);
  public synchronized void addItem(String item);
  //public synchronized void addItem(String item, int index);
  public synchronized void addNotify(); // overrides Component.addNotify()
  public boolean allowsMultipleSelections();
  public synchronized void clear();
  public int countItems();
  public synchronized void delItem(int position);
  public synchronized void delItems(int start, int end);
  public synchronized void deselect(int index);
  public String getItem(int index);
  public int getRows();
  public synchronized int getSelectedIndex();
  public synchronized int getSelectedItem();
  public int getVisibleIndex();
  public synchronized boolean isSelected(int index);
  public void makeVisible(int index);
  public Dimension mimimumSize(); // overrides Component.minimumSize()
  public Dimension preferredSize(); // overrides Component.preferredSize()
  public synchronized void removeNotify(); // overrides Component.removeNotify()
  public synchronized void replaceItem(String newValue, int index);
  public synchronized void select(int index);
  public void setMultipleSelections(boolean v);
}

// java.awt.MediaTracker - page 261
// see also joos.lib.JoosConstants 
// see also joos.lib.JoosMediaTracker that gives new versions
//            of waitForAll and waitForId that return bools instead
//            of throwing InterruptedException
extern public class MediaTracker extends Object in "java.awt" {
  public MediaTracker(Component comp);
  public void addImage(Image image, int d);
  // public void addImage(Image image, int d, int w, int h);
  // public boolean checkAll();
  public synchronized boolean checkAll(boolean load);
  // public boolean checkID(int id);
  public synchronized boolean checkID(int id,boolean load);
  public synchronized boolean isErrorAny();
  public synchronized boolean isErrorID(int id);
  public int statusAll(boolean load);
  public int statusID(int id, boolean load);
  // public void waitForAll() throws InterruptedException;
  // public void waitForID(int id) throws InterruptedException;
}

// java.awt.Menu - page 262
extern public class Menu extends MenuItem in "java.awt" {
  // implements MenuContainer
  public Menu(String label, boolean tearOff);
  public synchronized MenuItem add(MenuItem mi);
  // public void add(String label);
  public synchronized void addNotify(); // overrides MenuItem.addNotify()
  public void addSeparator();
  public int countItems();
  public MenuItem getItem(int index);
  public boolean isTearOff();
  public synchronized void remove(int index);
  // public synchronized void remove(MenuComponent item);
  public synchronized void removeNotify(); // overrides MenuComponent.removeNotify()
}

// java.awt.MenuBar - page 262
extern public class MenuBar extends MenuComponent in "java.awt" {
  // implements MenuContainer
  public MenuBar(); // empty
  public synchronized Menu add(Menu m);
  public synchronized void addNotify();
  public int countMenus();
  public Menu getHelpMenu();
  public Menu getMenu(int i);
  public synchronized void remove(int index);
  // public synchronized void remove(MenuComponent m);
  public void removeNotify(); // overrides MenuComponent.removeNotify()
  public synchronized void setHelpMenu(Menu m);
}

// java.awt.MenuComponent - page 263
extern public abstract class MenuComponent extends Object in "java.awt" {
  public MenuComponent(); // empty
  public Font getFont();
  //public MenuContainer getParent();
  //public MenuComponentPerr getPeer();
  public boolean postEvent(Event evt);
  public void removeNotify();
  public void setFont(Font f);
  public String toString(); // overrides Object.toString()
}

// java.awt.MenuContainer - page 263
// public abstract interface MenuContainer {
//   public abstract Font getFont();
//   public abstract boolean postEvent(Event evt);
//   public abstract void remove(MenuComponent comp);
// } 

// java.awt.MenuItem - page 264
extern public class MenuItem extends MenuComponent in "java.awt" {
  public MenuItem(String label);
  public synchronized void addNotify();
  public void disable();
  // public void enable();
  public void enable(boolean cond);
  public String getLabel();
  public boolean isEnabled();
  // public String paramString(); // overrides MenuComponent.paramString()
  public void setLabel(String label); 
}

// java.awt.Panel - page 264
extern public class Panel extends Container in "java.awt" {
  public Panel();
  public synchronized void addNotify(); // overrides Container.addNotify()
}

// java.awt.Point - page 265
extern public class Point extends Object in "java.awt" {
  public Point(int x, int y);
  public boolean equals(Object obj); // overrides Object.equals()
  public void move(int x, int y);
  public String toString(); // overrides Object.toString()
  public void translate(int x, int y);
}
    
// java.awt.Polygon - page 265
extern public class Polygon extends Object in "java.awt" {
  public Polygon();
  public void addPoint(int x, int y);
  public Rectangle getBoundingBox();
  public boolean Inside(int x, int y);
}

// java.awt.Rectangle - page 265
// see also JoosRectangle to get at instance variables
extern public class Rectangle extends Object in "java.awt" {
  public Rectangle(int x, int y, int width, int height);
  public void add(Rectangle r);
  public boolean equals(Object obj); // overrides Object.equals()
  public void grow(int h, int v);
  public boolean inside(int x, int y);
  public Rectangle intersection(Rectangle r);
  public boolean intersects(Rectangle r);
  public boolean isEmpty();
  public void move(int x, int y);
  public void reshape(int x, int y, int width, int height);
  public void resize(int width, int height);
  public String toString(); // Overrides Object.toString()
  public void translate(int x, int y);
  public Rectangle union(Rectangle r); 
}

// java.awt.Scrollbar - page 266
//     see also joos.lib.JoosConstants, SCROLLBAR_HORIZONTAL
//                                      SCROLLBAR_VERTICAL
extern public class Scrollbar extends Component in "java.awt" {
  public Scrollbar(int orientation);
  // public Scrollbar(int orientation, int value, int visible,
  //                     int minimum, int maximum);
  public synchronized void addNotify(); // overrides Component.addNotify()
  public int getLineIncrement();
  public int getMaximum();
  public int getMinimum();
  public int getOrientation();
  public int getPageIncrement();
  public int getValue();
  public int getVisible();
  public void setLineIncrement(int l);
  public void setPageIncrement(int l);
  public void setValue(int value);
  public void setValues(int value, int visible, int min, int max);
}

// java.awt.TextArea - page 267
extern public class TextArea extends TextComponent in "java.awt" {
  public TextArea(String text, int rows, int cols);
  // other constructors possible
  public synchronized void addNotify(); // Overrides Component.addNotify()
  public void appendText(String str);
  public int getColumns();
  public int getRows();
  public void InsertText(String str,int pos);
  public Dimension mimimumSize(); // overrides Component.mimimumSize()
  public Dimension preferredSize(); // overrides Component.preferredSize()
  public void replaceText(String str, int start, int end); 
}

// java.awt.TextComponent - page 268
extern public class TextComponent extends Component in "java.awt" {
  public TextComponent();  // doesn't have a constructor
  public String getSelectedText();
  public int getSelectionEnd();
  public int getSelectionStart();
  public String getText();
  public boolean isEditable();
  public synchronized void removeNotify(); // overrides Component.removeNotify()
  public void select(int selStart, int selEnd);
  public void selectAll();
  public void setEditable(boolean t);
  public void setText(String t);
} 

// java.awt.TextField - page 268
extern public class TextField extends TextComponent in "java.awt" {
  public TextField(String text, int cols);
  public synchronized void addNotify(); // overrides Component.addNotify()
  public boolean echoCharIsSet();
  public int getColumns();
  public Dimension minimumSize(); // overrides Component.mimimumSize()
  public Dimension preferredSize(); // overrides Component.preferredSize()
}

// java.awt.Toolkit - page 269
extern public abstract class Toolkit extends Object in "java.awt" {
  public Toolkit();
  public abstract int checkImage(Image image, int width, int height,
                                 ImageObserver observer);
  public abstract Image createImage(ImageProducer producer);
  // public abstract ColorModel getColorModel();
  public abstract FontMetrics getFontMetrics(Font font);
  // public abstract Image getImage(String filename);
  public abstract Image getImage(URL url);
  public abstract int getScreenResolution();
  public abstract Dimension getScreenSize();
  public abstract boolean prepareImage(Image image, int width,
                                       int height, ImageObserver observer);
  public abstract void sync(); 
}

// java.awt.Window - page 270
extern public class Window extends Container in "java.awt" {
  public Window(Frame parent);
  public synchronized void AddNotify(); // overrides Container.addNotify()
  public synchronized void dispose();
  public Toolkit getToolkit(); // overrides Component.getToolkit()
  public final String getWarningString();
  public synchronized void pack();
  public synchronized void show(); // overrides Component.show()
  public void toBack();
  public void toFront();
}
