diff options
Diffstat (limited to 'gcc-4.4.3/libjava/classpath/examples/gnu/classpath/examples/awt/Demo.java')
-rw-r--r-- | gcc-4.4.3/libjava/classpath/examples/gnu/classpath/examples/awt/Demo.java | 1189 |
1 files changed, 1189 insertions, 0 deletions
diff --git a/gcc-4.4.3/libjava/classpath/examples/gnu/classpath/examples/awt/Demo.java b/gcc-4.4.3/libjava/classpath/examples/gnu/classpath/examples/awt/Demo.java new file mode 100644 index 000000000..bd5e755cb --- /dev/null +++ b/gcc-4.4.3/libjava/classpath/examples/gnu/classpath/examples/awt/Demo.java @@ -0,0 +1,1189 @@ +/* Demo.java -- Shows examples of AWT components + Copyright (C) 1998, 1999, 2002, 2004, 2006 Free Software Foundation, Inc. + +This file is part of GNU Classpath examples. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. */ + +package gnu.classpath.examples.awt; + +import java.awt.BorderLayout; +import java.awt.Button; +import java.awt.Canvas; +import java.awt.Checkbox; +import java.awt.CheckboxGroup; +import java.awt.CheckboxMenuItem; +import java.awt.Choice; +import java.awt.Color; +import java.awt.Cursor; +import java.awt.Dialog; +import java.awt.Dimension; +import java.awt.DisplayMode; +import java.awt.FileDialog; +import java.awt.FlowLayout; +import java.awt.Font; +import java.awt.Frame; +import java.awt.Graphics; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; +import java.awt.GridLayout; +import java.awt.Image; +import java.awt.Insets; +import java.awt.Label; +import java.awt.List; +import java.awt.Menu; +import java.awt.MenuBar; +import java.awt.MenuItem; +import java.awt.MenuShortcut; +import java.awt.Panel; +import java.awt.ScrollPane; +import java.awt.TextField; +import java.awt.Toolkit; +import java.awt.Window; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.StringSelection; +import java.awt.datatransfer.Transferable; +import java.awt.datatransfer.UnsupportedFlavorException; +import java.awt.dnd.DnDConstants; +import java.awt.dnd.DragGestureEvent; +import java.awt.dnd.DragGestureListener; +import java.awt.dnd.DragSource; +import java.awt.dnd.DragSourceContext; +import java.awt.dnd.DragSourceDragEvent; +import java.awt.dnd.DragSourceDropEvent; +import java.awt.dnd.DragSourceEvent; +import java.awt.dnd.DragSourceListener; +import java.awt.dnd.DropTarget; +import java.awt.dnd.DropTargetDragEvent; +import java.awt.dnd.DropTargetDropEvent; +import java.awt.dnd.DropTargetEvent; +import java.awt.dnd.DropTargetListener; +import java.awt.dnd.InvalidDnDOperationException; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.net.URL; +import java.util.Enumeration; +import java.util.Hashtable; +import java.util.Vector; + +class Demo +{ + public static void main(String args[]) + { + MainWindow f = new MainWindow(); + f.show(); + } + + static interface SubWindow + { + public void init (); + } + + static class PrettyPanel extends Panel + { + Insets myInsets; + + public PrettyPanel () + { + myInsets = new Insets (10, 10, 10, 10); + } + public Insets getInsets () + { + return myInsets; + } + } + + static abstract class PrettyFrame extends Frame + { + public PrettyFrame () + { + ((BorderLayout) getLayout ()).setHgap (5); + ((BorderLayout) getLayout ()).setVgap (5); + } + + public Insets getInsets() + { + Insets oldInsets = super.getInsets (); + return new Insets (oldInsets.top+10, + oldInsets.left+10, + oldInsets.bottom+10, + oldInsets.right+10); + } + } + + static abstract class SubFrame extends PrettyFrame implements SubWindow + { + boolean initted = false; + + public void setVisible (boolean visible) + { + if (!initted && visible) + init(); + super.setVisible (visible); + } + } + + static class MainWindow extends PrettyFrame implements ActionListener + { + Button closeButton; + + Hashtable windows; + Vector buttons; + + void addSubWindow (String name, SubWindow w) + { + Button b = new Button (name); + b.addActionListener (this); + + buttons.addElement (b); + windows.put (b, w); + } + + MainWindow () + { + MenuBar mb = new MenuBar (); + Menu menu = new Menu ("File"); + Menu submenu = new Menu ("Testing", true); + submenu.add (new CheckboxMenuItem ("FooBar")); + submenu.add (new CheckboxMenuItem ("BarFoo")); + menu.add (submenu); + menu.add (new MenuItem("Orange")); + MenuItem quit = new MenuItem("Quit", new MenuShortcut('Q')); + quit.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + System.exit(0); + } + }); + menu.add(quit); + mb.add (menu); + + menu = new Menu("Edit", true); + menu.add(new MenuItem("Cut")); + menu.add(new MenuItem("Copy")); + menu.add(new MenuItem("Paste")); + mb.add (menu); + + Menu helpMenu = new Menu("Help"); + helpMenu.add(new MenuItem("About")); + mb.add(helpMenu); + mb.setHelpMenu(helpMenu); + + setMenuBar (mb); + + String version = System.getProperty("gnu.classpath.version"); + add (new Label ("GNU Classpath " + version), "North"); + + closeButton = new Button ("Close"); + closeButton.addActionListener (this); + closeButton.setFont (new Font ("Serif", Font.BOLD | Font.ITALIC, 18)); + add (closeButton, "South"); + + windows = new Hashtable (); + buttons = new Vector (); + + addSubWindow ("Buttons", new ButtonsWindow ()); + addSubWindow ("Cursors", new CursorsWindow ()); + addSubWindow ("Dialog", new DialogWindow (this)); + addSubWindow ("File", new FileWindow (this)); + addSubWindow ("Labels", new LabelWindow ()); + addSubWindow ("List", new ListWindow ()); + addSubWindow ("Radio Buttons", new RadioWindow ()); + addSubWindow ("TextField", new TextFieldWindow ()); + addSubWindow ("RandomTests", new TestWindow (this)); + addSubWindow ("RoundRect", new RoundRectWindow ()); + addSubWindow ("Animation", new AnimationWindow ()); + addSubWindow ("Resolution", new ResolutionWindow ()); + addSubWindow ("Fullscreen", new FullscreenWindow ()); + addSubWindow ("Drag n' Drop", new DragDropWindow ()); + + Panel sp = new Panel(); + PrettyPanel p = new PrettyPanel(); + p.setLayout (new GridLayout (windows.size(), 1)); + + for (Enumeration e = buttons.elements (); e.hasMoreElements (); ) + { + p.add ((Button) e.nextElement ()); + } + + sp.add (p); + add (sp, "Center"); + + setTitle ("AWT Demo"); + pack(); + } + + public void actionPerformed (ActionEvent evt) + { + Button source = (Button) evt.getSource (); + + if (source==closeButton) + { + dispose(); + System.exit (0); + } + + Window w = (Window) windows.get (source); + if (w.isVisible ()) + w.dispose (); + else + { + if (w instanceof Dialog) + { + w.show(); + } + else + { + w.setVisible (true); + } + } + } + } + + static class ButtonsWindow extends SubFrame implements ActionListener + { + Button b[] = new Button [9]; + + public void init () + { + initted = true; + Panel p = new Panel (); + p.setLayout (new GridLayout (0, 3, 5, 5)); + + for (int i=0; i<9; i++) + { + b[i]=new Button ("button" + (i+1)); + b[i].addActionListener (this); + } + + p.add (b[0]); + p.add (b[6]); + p.add (b[4]); + p.add (b[8]); + p.add (b[1]); + p.add (b[7]); + p.add (b[3]); + p.add (b[5]); + p.add (b[2]); + + add (p, "North"); + + Button cb = new Button ("close"); + cb.addActionListener(new ActionListener () { + public void actionPerformed (ActionEvent e) { + dispose(); + } + }); + add (cb, "South"); + setTitle ("Buttons"); + pack(); + } + + public void actionPerformed (ActionEvent evt) + { + Button source = (Button) evt.getSource (); + + for (int i = 0; i < 9; i++) + { + if (source == b[i]) + { + int i2 = ((i + 1) == 9) ? 0 : (i + 1); + if (b[i2].isVisible()) + b[i2].setVisible(false); + else + b[i2].setVisible(true); + } + } + } + } + + + static class DialogWindow extends Dialog implements SubWindow + { + Label text; + Frame parent; + boolean initted = false; + + public DialogWindow (Frame f) + { + super (f, true); + + this.parent = f; + + addWindowListener (new WindowAdapter () + { + public void windowClosing (WindowEvent e) + { + text.setVisible (false); + hide (); + } + }); + } + + public void setVisible (boolean visible) + { + if (!initted && visible) + init(); + super.setVisible (visible); + } + + public void show () + { + if (!initted) + init(); + super.show (); + } + + public void init () + { + text = new Label ("Dialog Test"); + text.setAlignment (Label.CENTER); + + add (text, "North"); + text.setVisible (false); + + Panel p = new PrettyPanel(); + + Button cb = new Button ("OK"); + cb.addActionListener(new ActionListener () { + public void actionPerformed (ActionEvent e) + { + text.setVisible (false); + hide(); + } + }); + + p.setLayout (new GridLayout (1, 3)); + ((GridLayout) p.getLayout ()).setHgap (5); + ((GridLayout) p.getLayout ()).setVgap (5); + p.add (cb); + + Button toggle = new Button ("Toggle"); + p.add (toggle); + + toggle.addActionListener(new ActionListener () { + public void actionPerformed (ActionEvent e) + { + if (text.isVisible ()) + text.setVisible (false); + else + text.setVisible (true); + doLayout(); + } + }); + + Button subdlg = new Button ("SubDialog"); + p.add (subdlg); + + subdlg.addActionListener(new ActionListener () { + public void actionPerformed (ActionEvent e) + { + DialogWindow sw = new DialogWindow (parent); + sw.show (); + } + }); + + add (p, "South"); + setTitle ("Dialog"); + pack(); + } + } + + static class CursorsWindow extends SubFrame implements ItemListener + { + Choice cursorChoice; + Canvas cursorCanvas; + + public void init () + { + cursorChoice = new Choice(); + cursorChoice.add ("Default"); + cursorChoice.add ("Crosshair"); + cursorChoice.add ("Text"); + cursorChoice.add ("Wait"); + cursorChoice.add ("Southwest Resize"); + cursorChoice.add ("Southeast Resize"); + cursorChoice.add ("Northwest Resize"); + cursorChoice.add ("Northeast Resize"); + cursorChoice.add ("North Resize"); + cursorChoice.add ("South Resize"); + cursorChoice.add ("West Resize"); + cursorChoice.add ("East Resize"); + cursorChoice.add ("Hand"); + cursorChoice.add ("Move"); + + cursorChoice.addItemListener(this); + + add (cursorChoice, "North"); + + cursorCanvas = new Canvas () + { + public void paint (Graphics g) + { + Dimension d = this.getSize(); + g.setColor(Color.white); + g.fillRect(0, 0, d.width, d.height/2); + g.setColor(Color.black); + g.fillRect(0, d.height/2, d.width, d.height/2); + g.setColor(this.getBackground()); + g.fillRect(d.width/3, d.height/3, d.width/3, + d.height/3); + } + }; + + cursorCanvas.setSize (80,80); + + add (cursorCanvas, "Center"); + + Button cb = new Button ("Close"); + cb.addActionListener(new ActionListener () { + public void actionPerformed (ActionEvent e) { + dispose(); + } + }); + + add (cb, "South"); + setTitle ("Cursors"); + pack(); + } + + public void itemStateChanged (ItemEvent e) + { + int index = cursorChoice.getSelectedIndex(); + cursorCanvas.setCursor(Cursor.getPredefinedCursor(index)); + } + } + + static class TextFieldWindow extends SubFrame implements ItemListener + { + Checkbox editable, visible, sensitive; + TextField text; + + public void init () + { + initted = true; + text = new TextField ("hello world"); + add (text, "North"); + + Panel p = new Panel(); + p.setLayout (new GridLayout (3, 1)); + ((GridLayout) p.getLayout ()).setHgap (5); + ((GridLayout) p.getLayout ()).setVgap (5); + + editable = new Checkbox("Editable", true); + p.add (editable); + editable.addItemListener (this); + + visible = new Checkbox("Visible", true); + p.add (visible); + visible.addItemListener (this); + + sensitive = new Checkbox("Sensitive", true); + p.add (sensitive); + sensitive.addItemListener (this); + + add (p, "Center"); + + Button cb = new Button ("Close"); + cb.addActionListener(new ActionListener () { + public void actionPerformed (ActionEvent e) { + dispose(); + } + }); + + add (cb, "South"); + setTitle ("TextField"); + pack(); + } + + public void itemStateChanged (ItemEvent e) + { + boolean on=true; + + if (e.getStateChange () == ItemEvent.DESELECTED) + on=false; + if (e.getSource() == editable) + text.setEditable (on); + if (e.getSource() == visible) + if (on) + text.setEchoChar ((char) 0); + else + text.setEchoChar ('*'); + if (e.getSource() == sensitive) + text.setEnabled (on); + + } + } + + static class FileWindow extends FileDialog implements SubWindow + { + boolean initted = false; + + public FileWindow (MainWindow mw) + { + super (mw); + } + + public void setVisible (boolean visible) + { + if (!initted && visible) + init(); + super.setVisible (visible); + } + + public void init() + { + initted = true; + } + } + + static class LabelWindow extends SubFrame + { + public void init () + { + initted = true; + + Panel p = new Panel(); + p.setLayout (new GridLayout (3, 1)); + ((GridLayout) p.getLayout ()).setHgap (5); + ((GridLayout) p.getLayout ()).setVgap (5); + + p.add (new Label ("left justified label", Label.LEFT)); + p.add (new Label ("center justified label", Label.CENTER)); + p.add (new Label ("right justified label", Label.RIGHT)); + + add (p, "Center"); + + Button cb = new Button ("Close"); + cb.addActionListener(new ActionListener () { + public void actionPerformed (ActionEvent e) { + dispose(); + } + }); + + add (cb, "South"); + setTitle ("Labels"); + pack(); + } + } + + static class ListWindow extends SubFrame + { + public void init () + { + initted = true; + + Panel p = new Panel (); + p.setLayout (new GridLayout (3, 1)); + + List l = new List (5, true); + for (int i = 0; i < 10; i++) + l.add ("List item " + i); + + p.add (l); + + add (p, "Center"); + + Button cb = new Button ("Close"); + cb.addActionListener(new ActionListener () { + public void actionPerformed (ActionEvent e) { + dispose(); + } + }); + + add (cb, "South"); + setTitle ("List"); + pack(); + } + } + + + static class RadioWindow extends SubFrame + { + public void init () + { + initted = true; + + Panel p = new Panel(); + p.setLayout (new GridLayout (3, 1)); + ((GridLayout) p.getLayout ()).setHgap (5); + ((GridLayout) p.getLayout ()).setVgap (5); + + final CheckboxGroup cg = new CheckboxGroup(); + final Checkbox[] boxes = new Checkbox[3]; + for (int i = 0; i < 3; ++i) + { + boxes[i] = new Checkbox("button" + i, cg, i == 0); + p.add(boxes[i]); + } + + add (p, "North"); + + p = new Panel(); + p.setLayout (new GridLayout (1, 3)); + ((GridLayout) p.getLayout ()).setHgap (5); + ((GridLayout) p.getLayout ()).setVgap (5); + + for (int i = 0; i < 3; ++i) + { + final int val = i; + Button tweak = new Button ("Set " + i); + tweak.addActionListener(new ActionListener () + { + public void actionPerformed (ActionEvent e) + { + cg.setSelectedCheckbox(boxes[val]); + } + }); + p.add(tweak); + } + + add (p, "Center"); + + Button cb = new Button ("Close"); + cb.addActionListener(new ActionListener () { + public void actionPerformed (ActionEvent e) { + dispose(); + } + }); + + add (cb, "South"); + setTitle ("Radio Buttons"); + pack(); + } + } + + static class TestWindow extends SubFrame + { + static int xs = 5, ys = 5; + final Frame parent; + + public TestWindow(Frame f) + { + parent = f; + } + + public void init() + { + initted = true; + + addWindowListener (new WindowAdapter () + { + public void windowClosing (WindowEvent e) + { + hide (); + } + }); + + Panel pan = new Panel(); + + final Label l = new Label ("Pithy Message:"); + l.setCursor (Cursor.getPredefinedCursor (Cursor.WAIT_CURSOR)); + pan.add (l); + + TextField tf = new TextField("Hello world!"); + pan.add(tf); + add(pan,"North"); + + final Image img; + URL imageurl; + imageurl = this.getClass() + .getResource("/gnu/classpath/examples/icons/big-warning.png"); + img = Toolkit.getDefaultToolkit().createImage(imageurl); + + final Canvas ch = new Canvas() + { + public void paint (Graphics g) + { + g.drawImage(img, xs + 25, ys + 25, this); + + Font font = new Font ("Serif", Font.PLAIN, 18); + g.setFont (font); + g.setXORMode (Color.red); + + g.drawString("Hi Red!", xs + 15, ys + 10); + g.setColor (Color.blue); + g.drawLine (xs, ys, xs + 100, ys + 100); + + } + }; + ch.setSize(150, 150); + add(ch, "Center"); + + final ScrollPane sp = new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS); + final Panel p = new Panel(); + p.add(new Button("Stop")); + p.add(new Button("evil")); + p.add(new Button("hoarders")); + p.add(new Button("use")); + p.add(new Button("GNU!")); + + sp.add(p); + add(sp, "South"); + + Panel east_panel = new Panel(); + east_panel.setLayout(new GridLayout (0,1)); + + CheckboxGroup group = new CheckboxGroup(); + Checkbox cb = new Checkbox("one", group, true); + east_panel.add(cb); + cb = new Checkbox("two", group, false); + east_panel.add(cb); + + add(east_panel,"East"); + + final Button wb = new Button(); + wb.setLabel("Hello World!"); + wb.addActionListener(new ActionListener() + { + public void actionPerformed (ActionEvent e) + { + l.setText ("Hello World!"); + + final Dialog d = new Dialog(parent); + d.setLayout(new FlowLayout()); + d.setModal(true); + Button b = new Button("foobar"); + b.addMouseListener(new MouseAdapter() + { + public void mousePressed (MouseEvent me) + { + d.hide (); + } + }); + d.add (b); + + List ch = new List(); + ch.add("Ding"); + ch.add("September"); + ch.add("Red"); + ch.add("Quassia"); + ch.add("Pterodactyl"); + d.add(ch); + + d.pack (); + d.show (); + } + }); + + wb.addMouseListener(new MouseAdapter() + { + public void mousePressed(MouseEvent e) { + xs++; + ys++; + ch.repaint (); + } + }); + + add(wb,"West"); + + pack(); + show(); + + sp.setScrollPosition (10,0); + + Toolkit t = Toolkit.getDefaultToolkit(); + t.beep(); + } + } + + static class ResolutionWindow extends SubFrame + { + GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); + + public void init () + { + initted = true; + + setTitle("Change Screen Resolution"); + final List list = new List(); + DisplayMode[] modes = gd.getDisplayModes(); + + for (int i=0;i<modes.length;i++ ) + list.add(modes[i].getWidth() + "x" + + modes[i].getHeight() + + ((modes[i].getBitDepth() != DisplayMode.BIT_DEPTH_MULTI) + ? "x" + modes[i].getBitDepth() + "bpp" + : "") + + ((modes[i].getRefreshRate() != DisplayMode.REFRESH_RATE_UNKNOWN) + ? "@" + modes[i].getRefreshRate() + "Hz" + : "")); + + ActionListener al = new ActionListener() + { + public void actionPerformed(ActionEvent ae) + { + int i = list.getSelectedIndex(); + gd.setDisplayMode(gd.getDisplayModes()[i]); + } + }; + + Button b = new Button("Switch"); + Button c = new Button("Close"); + + list.addActionListener(al); + b.addActionListener(al); + + c.addActionListener(new ActionListener () { + public void actionPerformed (ActionEvent e) { + dispose(); + } + }); + + setLayout(new GridLayout(3, 1, 5, 5)); + add(list); + add(b); + add(c); + + pack(); + } + } + + static class DragDropWindow + extends SubFrame + implements ActionListener, DropTargetListener + { + DragLabel source = new DragLabel("Drag and drop me to the following Button", + Label.CENTER); + + Button target = new Button(); + + public void init() + { + source.setForeground(Color.red); + add(source, BorderLayout.NORTH); + + target.addActionListener(this); + add(target, BorderLayout.SOUTH); + + new DropTarget(target, DnDConstants.ACTION_COPY_OR_MOVE, this); + + setSize(205, 100); + + pack(); + } + + public void actionPerformed(ActionEvent e) + { + Button b = (Button) e.getSource(); + b.setLabel(""); + } + + public void dragEnter(DropTargetDragEvent e) + { + } + + public void dragExit(DropTargetEvent e) + { + } + + public void dragOver(DropTargetDragEvent e) + { + } + + public void drop(DropTargetDropEvent e) + { + try + { + Transferable t = e.getTransferable(); + + if (e.isDataFlavorSupported(DataFlavor.stringFlavor)) + { + e.acceptDrop(e.getDropAction()); + + String s; + s = (String) t.getTransferData(DataFlavor.stringFlavor); + + target.setLabel(s); + + e.dropComplete(true); + } + else + e.rejectDrop(); + } + catch (java.io.IOException e2) + { + } + catch (UnsupportedFlavorException e2) + { + } + } + + public void dropActionChanged(DropTargetDragEvent e) + { + } + + class DragLabel + extends Label + implements DragGestureListener, DragSourceListener + { + private DragSource ds = DragSource.getDefaultDragSource(); + + public DragLabel(String s, int alignment) + { + super(s, alignment); + int action = DnDConstants.ACTION_COPY_OR_MOVE; + ds.createDefaultDragGestureRecognizer(this, action, this); + } + + public void dragGestureRecognized(DragGestureEvent e) + { + try + { + Transferable t = new StringSelection(getText()); + e.startDrag(DragSource.DefaultCopyNoDrop, t, this); + } + catch (InvalidDnDOperationException e2) + { + System.out.println(e2); + } + } + + public void dragDropEnd(DragSourceDropEvent e) + { + if (e.getDropSuccess() == false) + return; + + int action = e.getDropAction(); + if ((action & DnDConstants.ACTION_MOVE) != 0) + setText(""); + } + + public void dragEnter(DragSourceDragEvent e) + { + DragSourceContext ctx = e.getDragSourceContext(); + + int action = e.getDropAction(); + if ((action & DnDConstants.ACTION_COPY) != 0) + ctx.setCursor(DragSource.DefaultCopyDrop); + else + ctx.setCursor(DragSource.DefaultCopyNoDrop); + } + + public void dragExit(DragSourceEvent e) + { + } + + public void dragOver(DragSourceDragEvent e) + { + } + + public void dropActionChanged(DragSourceDragEvent e) + { + } + } + } + + static class FullscreenWindow extends SubFrame + { + GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); + + public void init () + { + initted = true; + + setTitle("Fullscreen Exclusive Mode"); + + ActionListener al = new ActionListener() + { + public void actionPerformed(ActionEvent ae) + { + if (gd.getFullScreenWindow() == FullscreenWindow.this) + gd.setFullScreenWindow(null); + else + gd.setFullScreenWindow(FullscreenWindow.this); + } + }; + + Button b = new Button("Toggle Fullscreen"); + Button c = new Button("Close"); + + b.addActionListener(al); + + c.addActionListener(new ActionListener () { + public void actionPerformed (ActionEvent e) { + gd.setFullScreenWindow(null); + dispose(); + } + }); + + setLayout(new GridLayout(3, 1, 5, 5)); + add(b); + add(c); + + pack(); + } + } + + static class RoundRectWindow extends SubFrame + { + public void init () + { + initted = true; + setTitle("RoundRect"); + setLayout(new BorderLayout()); + add(new DrawRoundRect(), "West"); + Button cb = new Button ("Close"); + cb.addActionListener(new ActionListener () { + public void actionPerformed (ActionEvent e) { + dispose(); + } + }); + add(cb, "Center"); + add(new FillRoundRect(), "East"); + pack(); + } + + static class DrawRoundRect extends Panel + { + + public Dimension getPreferredSize() + { + return new Dimension(500, 500); + } + + public void paint( Graphics g ) + { + // left side + + // rectangles should be identical + g.setColor(Color.red); + g.drawRect(50, 50, 300, 100); + g.setColor(Color.black); + g.drawRoundRect(50, 50, 300, 100, 0, 0); + + // small round corners + g.setColor(Color.red); + g.drawRect(50, 200, 300, 100); + g.setColor(Color.black); + g.drawRoundRect(50, 200, 300, 100, 25, 25); + + // round ends + g.setColor(Color.red); + g.drawRect(50, 350, 300, 100); + g.setColor(Color.black); + g.drawRoundRect(50, 350, 300, 100, 25, 100); + + // right side + + // circle only + g.setColor(Color.blue); + g.drawOval(375, 50, 100, 100); + + // round rectangle should exactly cover circle + g.setColor(Color.blue); + g.drawOval(375, 200, 100, 100); + g.setColor(Color.black); + g.drawRoundRect(375, 200, 100, 100, 100, 100); + + // round rectangle should look like a circle + g.setColor(Color.red); + g.drawRect(375, 350, 100, 100); + g.setColor(Color.black); + g.drawRoundRect(375, 350, 100, 100, 100, 100); + } + } + + static class FillRoundRect extends Panel + { + + public Dimension getPreferredSize() + { + return new Dimension(500, 500); + } + + public void paint( Graphics g ) + { + // left side + + // rectangles should be identical + g.setColor(Color.red); + g.fillRect(50, 50, 300, 100); + g.setColor(Color.black); + g.fillRoundRect(50, 50, 300, 100, 0, 0); + + // small round corners + g.setColor(Color.red); + g.fillRect(50, 200, 300, 100); + g.setColor(Color.black); + g.fillRoundRect(50, 200, 300, 100, 25, 25); + + // round ends + g.setColor(Color.red); + g.fillRect(50, 350, 300, 100); + g.setColor(Color.black); + g.fillRoundRect(50, 350, 300, 100, 25, 100); + + // right side + + // circle only + g.setColor(Color.blue); + g.fillOval(375, 50, 100, 100); + + // round rectangle should exactly cover circle + g.setColor(Color.blue); + g.fillOval(375, 200, 100, 100); + g.setColor(Color.black); + g.fillRoundRect(375, 200, 100, 100, 100, 100); + + // round rectangle should look like a circle + g.setColor(Color.red); + g.fillRect(375, 350, 100, 100); + g.setColor(Color.black); + g.fillRoundRect(375, 350, 100, 100, 100, 100); + } + } + } + + static class AnimationWindow extends SubFrame + { + AnimationApplet a; + public void init () + { + initted = true; + setTitle("Animation"); + Button cb = new Button ("Close"); + cb.addActionListener(new ActionListener () { + public void actionPerformed (ActionEvent e) + { + if (a != null) + { + a.destroy(); + dispose(); + } + } + }); + a = new AnimationApplet(); + add(a, "Center"); + add(cb, "South"); + pack(); + } + + public void show() + { + super.show(); + a.init(); + a.run(); + } + } +} |