Java GUI programming, create a car class allows user to place at specific location on carComponent.

130 Просмотры
Издатель
mport 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.@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 windshieldPoint2D.Double r1 = new Point2D.Double(xLeft + 10, yTop + 10);// The front of the roofPoint2D.Double r2 = new Point2D.Double(xLeft + 20, yTop);// The rear of the roofPoint2D.Double r3 = new Point2D.Double(xLeft + 40, yTop);// The bottom of the rear windshieldPoint2D.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); }}Carcomponent.javaimport 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); }}CarViewer.javaimport 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);}}
Категория
Язык программирования Java
Комментариев нет.