Lab 2
For this lab the first question is easy! Just create and run the sample graphical program below.   Save this lab in a folder called Lab_2_1.
package cardriver;

import java.awt.Graphics;
import javax.swing.JComponent;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import javax.swing.JFrame;

class CarComponent extends JComponent
{
    public void paintComponent(Graphics g)
    {
        Graphics2D g2 = (Graphics2D)g;

        Car car1 = new Car(0, 0);

        int x = getWidth() - 60;
        int y = getHeight() - 30;

        Car car2 = new Car(x, y);

        car1.draw(g2);
        car2.draw(g2);
    }
}


class Car
{
    /**
    Constructs a car with a given top-left corner.
    @param x the x-coordinate of the top-left corner
    @param y the y-coordinate of the top-left corner
     */
    public Car(int x, int y)
    {
        xLeft = x;
        yTop = y;
    }

    /**
    Draws the car.
    @param g2 the graphics context
     */
    public void draw(Graphics2D g2)
    {
        Rectangle body = new Rectangle(xLeft, yTop + 10, 60, 10);
        Ellipse2D.Double frontTire = new Ellipse2D.Double(xLeft + 10, yTop + 20,
            10, 10);
        Ellipse2D.Double rearTire = new Ellipse2D.Double(xLeft + 40, yTop + 20,
            10, 10);

        // The bottom of the front windshield
        Point2D.Double r1 = new Point2D.Double(xLeft + 10, yTop + 10);
        // The front of the roof
        Point2D.Double r2 = new Point2D.Double(xLeft + 20, yTop);
        // The rear of the roof
        Point2D.Double r3 = new Point2D.Double(xLeft + 40, yTop);
        // The bottom of the rear windshield
        Point2D.Double r4 = new Point2D.Double(xLeft + 50, yTop + 10);

        Line2D.Double frontWindshield = new Line2D.Double(r1, r2);
        Line2D.Double roofTop = new Line2D.Double(r2, r3);
        Line2D.Double rearWindshield = new Line2D.Double(r3, r4);

        g2.draw(body);
        g2.draw(frontTire);
        g2.draw(rearTire);
        g2.draw(frontWindshield);
        g2.draw(roofTop);
        g2.draw(rearWindshield);
    }

    private int xLeft;
    private int yTop;
} // the car class



public class Main
{

    /** Creates a new instance of Main */
    public Main(){}

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        JFrame frame = new JFrame();

        frame.setSize(300, 400);
        frame.setTitle("Two cars");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        CarComponent component = new CarComponent();
        frame.add(component);

        frame.setVisible(true);
    }

}

For the second lab in this series do the following:

You have seen how to simulate moving a bug on a horizontal line.  For this lab simulate a bug moving across a horizontal line using graphics!