--- a/src/demo/share/applets/GraphicsTest/GraphicsTest.java Fri Jun 22 12:16:14 2018 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,481 +0,0 @@
-/*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * - Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * - Neither the name of Oracle nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * This source code is provided to illustrate the usage of a given feature
- * or technique and has been deliberately simplified. Additional steps
- * required for a production-quality application, such as security checks,
- * input validation and proper error handling, might not be present in
- * this sample code.
- */
-
-
-
-import java.awt.*;
-import java.util.*;
-import java.awt.event.*;
-import java.applet.Applet;
-
-
-@SuppressWarnings("serial")
-class GraphicsPanel extends Panel {
-
- ActionListener al;
- ItemListener il;
- public GraphicsCards cards;
-
- GraphicsPanel(EventListener listener) {
- al = (ActionListener) listener;
- il = (ItemListener) listener;
-
- setLayout(new BorderLayout());
-
- add("Center", cards = new GraphicsCards());
-
- Panel p = new Panel();
- //p.setLayout(new BorderLayout());
-
- Button b = new Button("next");
- b.addActionListener(al);
- p.add(b);
-
- b = new Button("previous");
- b.addActionListener(al);
- p.add(b);
-
- p.add(new Label("go to:", Label.RIGHT));
-
- Choice c = new Choice();
- c.addItemListener(il);
- p.add(c);
-
- c.addItem("Arc");
- c.addItem("Oval");
- c.addItem("Polygon");
- c.addItem("Rect");
- c.addItem("RoundRect");
-
- add("North", p);
-
- setSize(400, 400);
- }
-
- @Override
- public Dimension getPreferredSize() {
- return new Dimension(200, 100);
- }
-}
-
-
-@SuppressWarnings("serial")
-public class GraphicsTest extends Applet
- implements ActionListener, ItemListener {
-
- GraphicsPanel mainPanel;
-
- @Override
- public void init() {
- setLayout(new BorderLayout());
- add("Center", mainPanel = new GraphicsPanel(this));
- }
-
- @Override
- public void destroy() {
- remove(mainPanel);
- }
-
- @Override
- public void actionPerformed(ActionEvent e) {
- String arg = e.getActionCommand();
-
- if ("next".equals(arg)) {
- ((CardLayout) mainPanel.cards.getLayout()).next(mainPanel.cards);
- } else if ("previous".equals(arg)) {
- ((CardLayout) mainPanel.cards.getLayout()).previous(mainPanel.cards);
- }
- }
-
- @Override
- public void itemStateChanged(ItemEvent e) {
- ((CardLayout) mainPanel.cards.getLayout()).show(mainPanel.cards,
- (String) e.getItem());
- }
-
- public static void main(String args[]) {
- AppletFrame.startApplet("GraphicsTest", "Graphics Test", args);
- }
-
- @Override
- public String getAppletInfo() {
- return "An interactive demonstration of some graphics.";
- }
-} // end class GraphicsTest
-
-
-@SuppressWarnings("serial")
-class GraphicsCards extends Panel {
-
- public GraphicsCards() {
- setLayout(new CardLayout());
- add("Arc", new ArcCard());
- add("Oval", new ShapeTest(new OvalShape()));
- add("Polygon", new ShapeTest(new PolygonShape()));
- add("Rect", new ShapeTest(new RectShape()));
- add("RoundRect", new ShapeTest(new RoundRectShape()));
- }
-} // end class GraphicsCards
-
-
-@SuppressWarnings("serial")
-class ArcCard extends Panel {
-
- public ArcCard() {
- setLayout(new GridLayout(0, 2));
- add(new ArcPanel(true));
- add(new ArcPanel(false));
- add(new ArcDegreePanel(true));
- add(new ArcDegreePanel(false));
- }
-} // end class ArcCard
-
-
-@SuppressWarnings("serial")
-class ArcDegreePanel extends Panel {
-
- boolean filled;
-
- public ArcDegreePanel(boolean filled) {
- this.filled = filled;
- }
-
- void arcSteps(Graphics g,
- int step,
- int x,
- int y,
- int w,
- int h,
- Color c1,
- Color c2) {
- int a1 = 0;
- int a2 = step;
- int progress = 0;
- g.setColor(c1);
- for (; (a1 + a2) <= 360; a1 = a1 + a2, a2 += 1) {
- if (g.getColor() == c1) {
- g.setColor(c2);
- } else {
- g.setColor(c1);
- }
-
- if (filled) {
- g.fillArc(x, y, w, h, a1, a2);
- } else {
- g.drawArc(x, y, w, h, a1, a2);
- }
-
- progress = a1 + a2;
- } // end for
-
- if (progress != 360) {
- if (filled) {
- g.fillArc(x, y, w, h, a1, 360 - progress);
- } else {
- g.drawArc(x, y, w, h, a1, 360 - progress);
- }
- } // end if
- } // end arcSteps()
-
- @Override
- public void paint(Graphics g) {
- Rectangle r = getBounds();
-
- arcSteps(g, 3, 0, 0, r.width, r.height, Color.orange, Color.blue);
-
- arcSteps(g,
- 2,
- r.width / 4,
- r.height / 4,
- r.width / 2,
- r.height / 2,
- Color.yellow,
- Color.green);
-
- arcSteps(g,
- 1,
- (r.width * 3) / 8,
- (r.height * 3) / 8,
- r.width / 4,
- r.height / 4,
- Color.magenta,
- Color.white);
-
- } // end paint()
-} // end class ArcDegreePanel
-
-
-@SuppressWarnings("serial")
-class ArcPanel extends Panel {
-
- boolean filled;
-
- public ArcPanel(boolean filled) {
- this.filled = filled;
- }
-
- @Override
- public void paint(Graphics g) {
- Rectangle r = getBounds();
-
- g.setColor(Color.yellow);
- if (filled) {
- g.fillArc(0, 0, r.width, r.height, 0, 45);
- } else {
- g.drawArc(0, 0, r.width, r.height, 0, 45);
- }
-
- g.setColor(Color.green);
- if (filled) {
- g.fillArc(0, 0, r.width, r.height, 90, -45);
- } else {
- g.drawArc(0, 0, r.width, r.height, 90, -45);
- }
-
- g.setColor(Color.orange);
- if (filled) {
- g.fillArc(0, 0, r.width, r.height, 135, -45);
- } else {
- g.drawArc(0, 0, r.width, r.height, 135, -45);
- }
-
- g.setColor(Color.magenta);
-
- if (filled) {
- g.fillArc(0, 0, r.width, r.height, -225, 45);
- } else {
- g.drawArc(0, 0, r.width, r.height, -225, 45);
- }
-
- g.setColor(Color.yellow);
- if (filled) {
- g.fillArc(0, 0, r.width, r.height, 225, -45);
- } else {
- g.drawArc(0, 0, r.width, r.height, 225, -45);
- }
-
- g.setColor(Color.green);
- if (filled) {
- g.fillArc(0, 0, r.width, r.height, -135, 45);
- } else {
- g.drawArc(0, 0, r.width, r.height, -135, 45);
- }
-
- g.setColor(Color.orange);
- if (filled) {
- g.fillArc(0, 0, r.width, r.height, -45, -45);
- } else {
- g.drawArc(0, 0, r.width, r.height, -45, -45);
- }
-
- g.setColor(Color.magenta);
- if (filled) {
- g.fillArc(0, 0, r.width, r.height, 315, 45);
- } else {
- g.drawArc(0, 0, r.width, r.height, 315, 45);
- }
-
- } // end paint()
-} // end class ArcPanel
-
-
-abstract class Shape {
-
- abstract void draw(Graphics g, int x, int y, int w, int h);
-
- abstract void fill(Graphics g, int x, int y, int w, int h);
-}
-
-
-class RectShape extends Shape {
-
- @Override
- void draw(Graphics g, int x, int y, int w, int h) {
- g.drawRect(x, y, w, h);
- }
-
- @Override
- void fill(Graphics g, int x, int y, int w, int h) {
- g.fillRect(x, y, w, h);
- }
-}
-
-
-class OvalShape extends Shape {
-
- @Override
- void draw(Graphics g, int x, int y, int w, int h) {
- g.drawOval(x, y, w, h);
- }
-
- @Override
- void fill(Graphics g, int x, int y, int w, int h) {
- g.fillOval(x, y, w, h);
- }
-}
-
-
-class RoundRectShape extends Shape {
-
- @Override
- void draw(Graphics g, int x, int y, int w, int h) {
- g.drawRoundRect(x, y, w, h, 10, 10);
- }
-
- @Override
- void fill(Graphics g, int x, int y, int w, int h) {
- g.fillRoundRect(x, y, w, h, 10, 10);
- }
-}
-
-
-class PolygonShape extends Shape {
- // class variables
-
- Polygon p;
- Polygon pBase;
-
- public PolygonShape() {
- pBase = new Polygon();
- pBase.addPoint(0, 0);
- pBase.addPoint(10, 0);
- pBase.addPoint(5, 15);
- pBase.addPoint(10, 20);
- pBase.addPoint(5, 20);
- pBase.addPoint(0, 10);
- pBase.addPoint(0, 0);
- }
-
- void scalePolygon(float w, float h) {
- p = new Polygon();
- for (int i = 0; i < pBase.npoints; ++i) {
- p.addPoint((int) (pBase.xpoints[i] * w),
- (int) (pBase.ypoints[i] * h));
- }
-
- }
-
- @Override
- void draw(Graphics g, int x, int y, int w, int h) {
- Graphics ng = g.create();
- try {
- ng.translate(x, y);
- scalePolygon(((float) w / 10f), ((float) h / 20f));
- ng.drawPolygon(p);
- } finally {
- ng.dispose();
- }
- }
-
- @Override
- void fill(Graphics g, int x, int y, int w, int h) {
- Graphics ng = g.create();
- try {
- ng.translate(x, y);
- scalePolygon(((float) w / 10f), ((float) h / 20f));
- ng.fillPolygon(p);
- } finally {
- ng.dispose();
- }
- }
-}
-
-
-@SuppressWarnings("serial")
-class ShapeTest extends Panel {
-
- Shape shape;
- int step;
-
- public ShapeTest(Shape shape, int step) {
- this.shape = shape;
- this.step = step;
- }
-
- public ShapeTest(Shape shape) {
- this(shape, 10);
- }
-
- @Override
- public void paint(Graphics g) {
- Rectangle bounds = getBounds();
-
- int cx, cy, cw, ch;
-
- Color color;
-
- for (color = Color.red, cx = bounds.x, cy = bounds.y,
- cw = bounds.width / 2, ch = bounds.height;
- cw > 0 && ch > 0;
- cx += step, cy += step, cw -= (step * 2), ch -= (step * 2),
- color = ColorUtils.darker(color, 0.9)) {
- g.setColor(color);
- shape.draw(g, cx, cy, cw, ch);
- }
-
- for (cx = bounds.x + bounds.width / 2, cy = bounds.y,
- cw = bounds.width / 2, ch = bounds.height;
- cw > 0 && ch > 0;
- cx += step, cy += step, cw -= (step * 2), ch -= (step * 2)) {
- if (g.getColor() == Color.red) {
- g.setColor(Color.blue);
- } else {
- g.setColor(Color.red);
- }
-
- shape.fill(g, cx, cy, cw, ch);
- } // end for
- } // end paint()
-} // end class ShapeTest
-
-
-class ColorUtils {
-
- static Color brighter(Color c, double factor) {
- return new Color(Math.min((int) (c.getRed() * (1 / factor)), 255),
- Math.min((int) (c.getGreen() * (1 / factor)), 255),
- Math.min((int) (c.getBlue() * (1 / factor)), 255));
- }
-
- static Color darker(Color c, double factor) {
- return new Color(Math.max((int) (c.getRed() * factor), 0),
- Math.max((int) (c.getGreen() * factor), 0),
- Math.max((int) (c.getBlue() * factor), 0));
- }
-}