Advance Programing in java

profilesandeep@45
students.zip

students/Car.java

students/Car.java

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.
       @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 );       
    }
}

students/CarComponent.java

students/CarComponent.java

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 );       
    }
}

students/Task2FirstnameLastname.java

students/Task2FirstnameLastname.java

import  javax . swing . JFrame ;

public   class   Task2FirstnameLastname
{
    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 );
    }
}