Hey guys, I was writing and trying out this code that I found in a book but I don't understand what part of the code makes the second car stay in the lower right corner of the screen. Could anybody help?
import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.Point2D; /* * A car shape that can be positioned anywhere on the screen. */ public class Car { private int xLeft; private int yTop; /* * Constructs a car with a given top left corner. */ public Car(int x, int y) { xLeft = x; yTop = y; } /* * Draws the car. */ 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); } }
import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.JComponent; /* * This component draws two car shapes. */ public 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); } }
import javax.swing.JFrame; public class CarViewer { 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); } }
Thanks a lot.