QuadCurve.java Source code

Java tutorial

Introduction

Here is the source code for QuadCurve.java

Source

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.QuadCurve2D;
import java.awt.geom.Rectangle2D;
import java.util.Vector;

import javax.swing.JApplet;
import javax.swing.JFrame;

public class QuadCurve extends JApplet {
    DrawingCanvas canvas;

    public static void main(String[] a) {
        JFrame f = new JFrame();
        QuadCurve curve = new QuadCurve();
        curve.init();
        f.getContentPane().add(curve);
        f.setDefaultCloseOperation(1);
        f.setSize(650, 250);
        f.setVisible(true);
    }

    public void init() {
        Container container = getContentPane();
        canvas = new DrawingCanvas();
        container.add(canvas);
    }

    class DrawingCanvas extends Canvas {
        Vector quadCurves;

        QuadCurve2D selectedCurve = null;

        Rectangle2D boundingRec = null;

        public DrawingCanvas() {
            setBackground(Color.white);
            setSize(400, 200); // width and height of canvas

            quadCurves = new Vector();
            quadCurves.addElement(new QuadCurve2D.Float(20, 20, 80, 160, 120, 20));
            quadCurves.addElement(new QuadCurve2D.Float(120, 100, 160, 40, 200, 180));
            quadCurves.addElement(new QuadCurve2D.Float(240, 20, 220, 60, 260, 120));
            quadCurves.addElement(new QuadCurve2D.Float(250, 160, 260, 140, 280, 180));
            quadCurves.addElement(new QuadCurve2D.Float(300, 180, 340, 40, 380, 120));
            quadCurves.addElement(new QuadCurve2D.Float(20, 180, 80, 170, 120, 190));
        }

        public void paint(Graphics g) {
            Graphics2D g2D = (Graphics2D) g;

            for (int i = 0; i < quadCurves.size(); i++) {
                g2D.draw((QuadCurve2D) quadCurves.elementAt(i));
            }

        }
    }
}