Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

/** ArrayListPractice Anderson, Franceschi */ import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.util.ArrayList; import java.util.Iterator; public class ArrayListPractice extends JFrame { // GUI components private

/** ArrayListPractice Anderson, Franceschi */

import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.util.ArrayList; import java.util.Iterator;

public class ArrayListPractice extends JFrame { // GUI components private JButton fillValues; private JButton printAutoList; private JButton setValues; private JButton findMaximum; private JButton countFrequency;

private ButtonHandler bh;

private static ArrayList carList; private static Auto current = null; private AutoDisplay ad;

private static ArrayListPractice app; private boolean firstTime = true;

public ArrayListPractice( ) { super( "Choose your activity" ); Container c = getContentPane( ); c.setLayout( new FlowLayout( ) );

fillValues = new JButton( "Fill Cars" ); c.add( fillValues ); printAutoList = new JButton( "Print Auto List" ); c.add( printAutoList ); setValues = new JButton( "Set Models" ); c.add( setValues ); findMaximum = new JButton( "Find Maximum Miles" ); c.add( findMaximum ); countFrequency = new JButton( "Count Model Frequency" ); c.add( countFrequency );

bh = new ButtonHandler( ); fillValues.addActionListener( bh ); printAutoList.addActionListener( bh ); setValues.addActionListener( bh ); findMaximum.addActionListener( bh ); countFrequency.addActionListener( bh );

setSize( 500,400 );

carList = new ArrayList( );

ad = new AutoDisplay( carList ); setVisible( true ); ad.setEraseColor( getBackground( ) ); // fill carList with several cars fillWithCars( ); }

// ***** 1. This method has been coded as an example /** Fills the carList with hard-coded Auto objects * The instance variable carList is the ArrayList * to be filled with Auto objects */ public void fillWithCars() { // clear carList before adding cars carList.clear(); // Reset the number of Autos to 0 // This is needed so that the animation feedback works correctly Auto.clearNumberAutos();

Auto car1 = new Auto("BMW", 0, 0.0); Auto car2 = new Auto("Ferrari", 100, 500.0); Auto car3 = new Auto("Jeep", 1000, 90.0); Auto car4 = new Auto("Ferrari", 10, 3.0); Auto car5 = new Auto("BMW", 4000, 200.0); Auto car6 = new Auto("Ferrari", 1000, 50.0);

carList.add(car1); carList.add(car2); carList.add(car3); carList.add(car4); carList.add(car5); carList.add(car6); animate(); }

// ***** 2. Student writes this method /** Prints carList to console, elements are separated by a space * The instance variable carList is the ArrayList to be printed */ public void printAutoList() { // Note: To animate the algorithm, put this method call as the // last element in your for loop // animate(car); // where car is the variable name for the current Auto object // as you loop through the ArrayList object // Part 2 student code starts here:

// Part 2 student code ends here. }

// ***** 3. Student writes this method /** Sets the model of all the elements in carList to parameter value * The instance variable carList is the ArrayList to be modified * @param model the model to assign to all Auto objects in carList */ public void setModelValues(String model) { // Note: To animate the algorithm, put this method call as the // last statement in your for loop // animate(car); // where car is the variable name for the current Auto object // as you loop through the ArrayList object // Part 3 student code starts here:

// Part 3 student code ends here. }

// ***** 4. Student writes this method /** Finds maximum number of miles driven * Instance variable carList is the ArrayList to search * @return the maximum miles driven by all the Auto objects */ public int findMaximumMilesDriven() { // Note: To animate the algorithm, put this method call as the // last statement in your for loop // animate(car, maximum); // where car is the variable name for the current Auto object // and maximum is the int variable storing the current maximum // number of miles for all Auto elements you have already tested // as you loop through the ArrayList object // Part 4 student code starts here:

return 0; // replace this statement with your return statement

// Part 4 student code ends here. }

// ***** 5. Student writes this method /** Finds number of times parameter model is found in the carList * Instance variable carList is the ArrayList in which we search * @param model the model to count * @return the number of times model was found */ public int countFound(String model) { // Note: To animate the algorithm, put this method call as the // last statement in your for loop // animate(car, num); // where car is the variable name for the current Auto object // and num is the int variable storing the current number of // Auto elements whose model is equal to the method's parameter // as you loop through the ArrayList object // Part 5 student code starts here:

return 0; // replace this statement with your return statement

// Part 5 student code ends here. }

public void startActivity( int act ) { ad.setActivity( act ); boolean goodInput = false; String answer = ""; String message = ""; switch( act ) { case 0: fillWithCars( ); JOptionPane.showMessageDialog( null, "carList filled with new values" ); break;

case 1: printAutoList( ); JOptionPane.showMessageDialog( null, "carList printed" ); break;

case 2: answer = JOptionPane.showInputDialog( null, "Enter a car model" ); if (answer != null ) { ad.setSearchModel( answer ); setModelValues( answer ); if ( ad.getCurrentModelValuesSet( ) ) message = " Your result is correct"; else message = " Your result is not correct"; JOptionPane.showMessageDialog( null, "car models set to " + answer + message ); } break;

case 3: int a = findMaximumMilesDriven( ); if ( a == ad.getCurrentMaximumMilesDriven( ) ) message = " Your result is correct"; else message = " Your result is not correct"; JOptionPane.showMessageDialog( null, "The maximum number of miles driven is " + a + message ); break;

case 4: answer = JOptionPane.showInputDialog( null, "Enter a car model" ); if ( answer != null ) { ad.setSearchModel( answer ); int frequency = countFound( answer ); if ( frequency == ad.getCurrentCountModelFound( ) ) message = " Your result is correct"; else message = " Your result is not correct"; if ( frequency > 1 ) JOptionPane.showMessageDialog( null, answer + " found " + frequency + " times" + message ); else if ( frequency == 1 ) JOptionPane.showMessageDialog( null, answer + " found " + frequency + " time" + message ); else JOptionPane.showMessageDialog( null, answer + " not found" + message ); } break; } enableButtons( ); }

public static Auto getCurrent( ) { return current; }

public static ArrayList getCarList( ) { return carList; }

private void animate( Auto au ) { if ( ad.getActivity( ) == 1 || ad.getActivity( ) == 2 ) { try { current = au; ad.setCarList( carList ); ad.setCurrentAuto( au ); ad.setCurrentIndex( au.getIndex( ) ); repaint( ); Thread.sleep( 4000 ); } catch ( InterruptedException e ) { System.out.println( "IE Exception " + e.getMessage( ) ); System.out.println( e.toString( ) ); } } else { // call to animate has wrong number of arguments JOptionPane.showMessageDialog( null, "Wrong number of arguments to animate method" ); System.exit( 1 ); } }

private void animate( Auto au, int studentResult ) { if ( ad.getActivity( ) == 3 || ad.getActivity( ) == 4 ) { try { current = au; ad.setCarList( carList ); ad.setCurrentAuto( au ); ad.setCurrentIndex( au.getIndex( ) ); ad.setStudentResult( studentResult ); repaint( ); Thread.sleep( 4000 ); } catch ( InterruptedException e ) { System.out.println( "IE Exception " + e.getMessage( ) ); System.out.println( e.toString( ) ); } } else { // call to animate has wrong number of arguments JOptionPane.showMessageDialog( null, "Wrong number of arguments to animate method" ); System.exit( 1 ); } }

private void animate( ) { if ( ad.getActivity( ) == 0 ) { try { ad.setCarList( carList ); repaint( ); Thread.sleep( 4000 ); } catch ( InterruptedException e ) { System.out.println( "IE Exception " + e.getMessage( ) ); System.out.println( e.toString( ) ); } } else { // call to animate has wrong number of arguments JOptionPane.showMessageDialog( null, "Wrong number of arguments to animate method" ); System.exit( 1 ); } }

public void paint( Graphics g ) { if ( ( ( current != null ) || firstTime ) && ( ad.getActivity( ) != 0 ) ) { super.paint( g ); if ( ad.getCurrentAuto( ) != null ) ad.updateAutoDisplay( current, g ); firstTime = false; } else if ( ad.getActivity( ) == 0 ) { super.paint( g ); ad.updateAutoDisplay( g ); } }

public static void main( String [] args ) { app = new ArrayListPractice( ); app.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); }

public void disableButtons( ) { fillValues.setEnabled( false ); printAutoList.setEnabled( false ); setValues.setEnabled( false ); countFrequency.setEnabled( false ); findMaximum.setEnabled( false ); }

public void enableButtons( ) { fillValues.setEnabled( true ); printAutoList.setEnabled( true ); setValues.setEnabled( true ); countFrequency.setEnabled( true ); findMaximum.setEnabled( true ); }

private class ButtonHandler implements ActionListener { private boolean on = true; public void actionPerformed( ActionEvent e ) { printAutoListT t = new printAutoListT( app );

if ( e.getSource( ) == fillValues ) { disableButtons( ); fillValues.requestFocus( ); ad.setActivity( 0 ); t.start( ); } else if ( e.getSource( ) == printAutoList ) { disableButtons( ); printAutoList.requestFocus( ); ad.setActivity( 1 ); t.start( ); } else if ( e.getSource( ) == setValues ) { disableButtons( ); setValues.requestFocus( ); ad.setActivity( 2 ); t.start( ); } else if ( e.getSource( ) == findMaximum ) { disableButtons( ); findMaximum.requestFocus( ); ad.setActivity( 3 ); t.start( ); } else if ( e.getSource( ) == countFrequency ) { disableButtons( ); countFrequency.requestFocus( ); ad.setActivity( 4 ); t.start( ); } } }

private class printAutoListT extends Thread { ArrayList arr; ArrayListPractice s1; public printAutoListT ( ArrayListPractice s ) { arr = ArrayListPractice.carList; s1 = s; } public void run( ) { startActivity( ad.getActivity( ) ); } } }

/* Auto class Anderson, Franceschi */ import java.text.DecimalFormat; import java.awt.Graphics;

public class Auto { // Static instance variable - number of Auto objects references created private static int numberAutos = 0; // Instance variables private String model; // model of auto private int milesDriven; // number of miles driven private double gallonsOfGas; // number of gallons of gas private int index; // car number

// Default constructor: // Initializes model to a blank String // milesDriven are autoinitialized to 0, gallonsOfGas to 0.0 public Auto( ) { model = ""; index = numberAutos; numberAutos++; }

// Overloaded constructor: // Allows client to set beginning values for // model, milesDriven, and gallonsOfGas. // Calls mutator methods to validate new values. public Auto( String startModel, int startMilesDriven, double startGallonsOfGas ) { model = startModel; setMilesDriven( startMilesDriven ); setGallonsOfGas( startGallonsOfGas ); index = numberAutos; numberAutos++; }

// Accessor method: // Returns current value of index public int getIndex( ) { return index; }

// Accessor method: // Returns current value of model public String getModel( ) { return model; }

// Accessor method: // Returns current value of milesDriven public int getMilesDriven( ) { return milesDriven; }

// Accessor method: // Returns current value of gallonsOfGas public double getGallonsOfGas( ) { return gallonsOfGas; }

// Mutator method: // Allows client to set model public void setModel( String newModel ) { model = newModel; }

// Mutator method: // Allows client to set value of milesDriven // prints an error message if new value is less than 0 public void setMilesDriven( int newMilesDriven ) { if ( newMilesDriven >= 0 ) milesDriven = newMilesDriven; else { System.err.println( "Miles driven must be at least 0." ); System.err.println( "Value not changed." ); } }

// Mutator method: // Allows client to set value of gallonsOfGas; // prints an error message if new value is less than 0.0 public void setGallonsOfGas( double newGallonsOfGas ) { if ( newGallonsOfGas >= 0.0 ) gallonsOfGas = newGallonsOfGas; else { System.err.println( "Gallons of gas must be at least 0." ); System.err.println( "Value not changed." ); } }

// Mutator method // Allows client to add miles driven and gallons of gas used // to current values; // prints error messages if new values are less than 0 public void addMileage( int newMilesDriven, double newGallonsOfGas ) { if ( newMilesDriven < 0 ) { System.err.println( "Miles driven must be at least 0." ); System.err.println( "Value not changed" ); return; // do not continue executing method }

if ( newGallonsOfGas < 0.0 ) { System.err.println( "Gallons of gas must positive." ); System.err.println( "Value not changed" ); return; // do not continue executing method }

// ok to change values milesDriven += newMilesDriven; // add newMilesDriven gallonsOfGas += newGallonsOfGas; // add newGallonsOfGas }

// Calculates mileage as miles per gallon. // If no gallons of gas have been used, returns 0.0; // Otherwise, returns miles per gallon // as milesDriven / gallonsOfGas public double calculateMilesPerGallon( ) { if ( gallonsOfGas != 0.0 ) return milesDriven / gallonsOfGas; else return 0.0; }

public static void clearNumberAutos( ) { numberAutos = 0; }

public String toString( ) { DecimalFormat gallonsFormat = new DecimalFormat( "##.0" ); return "Model: " + model + " Miles driven: " + milesDriven + " Gallons of gas: " + gallonsFormat.format( gallonsOfGas ); }

public void draw( Graphics g, int startX, int endX, int y) {}

} // end Auto class definition

/* AutoDisplay * Anderson, Franceschi */

import java.awt.Graphics; import javax.swing.JFrame; import java.awt.Color; import java.util.ArrayList;

public class AutoDisplay { private ArrayList data;

private int xStart = 100; private int xEnd = 300; private int yStart = 200; private int activity = 0; private int count = 0;

private Auto currentAuto; private int currentIndex; private String searchModel; private int studentResult;

private int currentCountModelFound; private int currentMaximumMilesDriven; private boolean currentModelValuesSet;

private Color eraseColor;

public AutoDisplay( ) { }

public AutoDisplay( ArrayList al ) { data = new ArrayList( ); data = al; }

public void setCarList( ArrayList al ) { data = al; }

public void setActivity( int a ) { activity = a; } public int getActivity( ) { return activity; }

public void setCurrentAuto( Auto car ) { currentAuto = car; }

public Auto getCurrentAuto( ) { return currentAuto; }

public void setCurrentIndex( int newCurrentIndex ) { currentIndex = newCurrentIndex; }

public void setSearchModel( String newSearchModel ) { searchModel = newSearchModel; }

public void setStudentResult( int sr ) { studentResult = sr; }

public void setEraseColor( Color c ) { eraseColor = c; }

public int getCurrentCountModelFound( ) { return currentCountModelFound; }

public int getCurrentMaximumMilesDriven( ) { return currentMaximumMilesDriven; }

public boolean getCurrentModelValuesSet( ) { return currentModelValuesSet; }

public void findCurrentMaximumMilesDriven( ) { currentMaximumMilesDriven = currentAuto.getMilesDriven( ); for(int i = 0; i < currentIndex; i++) { if ( data.get( i ).getMilesDriven( ) > currentMaximumMilesDriven ) currentMaximumMilesDriven = data.get( i ).getMilesDriven( ); } }

public void findCurrentCountFound( ) { currentCountModelFound = 0; for(int i = 0; i <= currentIndex; i++) { if ( data.get( i ).getModel( ).equals(searchModel) ) currentCountModelFound++; } }

public void checkCurrentModelValuesSet( ) { currentModelValuesSet = true; for(int i = 0; i <= currentIndex; i++) { if (!( data.get( i ).getModel( ).equals(searchModel) )) currentModelValuesSet = false; } }

public void updateAutoDisplay( Graphics g ) { // called for new ArrayList values // Displays new data int i = 0; for ( Auto car : data ) { if ( car.getModel( ).equals( "BMW" ) ) g.setColor( Color.blue ); else if ( car.getModel( ).equals( "Jeep" ) ) g.setColor( Color.black ); else if ( car.getModel( ).equals( "Ferrari" ) ) g.setColor( Color.red ); else g.setColor( Color.green );

g.drawString( car.toString( ) , xStart, yStart + 25* i ); i = i + 1; try { Thread.sleep( 100 ); } catch ( InterruptedException e ) { e.printStackTrace(); } } }

public void updateAutoDisplay( Auto car, Graphics g ) { draw( g ); switch( activity ) { case 0: // create new ArrayList values break; case 1: // print out the ArrayList break; case 2: // set all Auto models checkCurrentModelValuesSet( ); drawValuesSet( g ); break; case 3: // find the maximum mumber of miles findCurrentMaximumMilesDriven( ); drawMaxMiles( g ); break; case 4: // find the frequency of a model findCurrentCountFound( ); drawFrequency( g ); break; }

if ( ( currentAuto.getModel( ) ).equals( "BMW" ) ) drawBMW( g, xStart, xEnd, yStart ); else if ( ( currentAuto.getModel( ) ).equals( "Jeep" ) ) drawJeep( g, xStart, xEnd, yStart ); else if ( ( currentAuto.getModel( ) ).equals( "Ferrari" ) ) drawFerrari( g, xStart, xEnd, yStart ); else drawOtherCar( g, xStart, xEnd, yStart ); }

public void draw( Graphics g ) { // Set color first then Draw the miles and gallons of currentAuto if ( currentAuto != null ) { if ( currentAuto.getModel( ).equals( "BMW" ) ) g.setColor( Color.BLUE ); else if ( currentAuto.getModel( ).equals( "Jeep" ) ) g.setColor( Color.BLACK ); else if ( currentAuto.getModel( ).equals( "Ferrari" ) ) g.setColor( Color.RED ); else g.setColor( new Color( 20, 200, 110 ) ); g.drawString( "Miles = " + currentAuto.getMilesDriven( ) , xStart + 100, yStart + 40 ); g.drawString( "Gallons = " + currentAuto.getGallonsOfGas( ) , xStart + 100, yStart + 70 ); } }

public void drawBMW( Graphics g, int startX, int endX, int y ) { int wx1 = 0; int wy1 = 0; int wx2 = 0; int wy2 = 0; for ( int x = startX; x < endX; x += 1 ) { // draw the BMW g.setColor( Color.BLUE ); // Bottom g.drawLine( x, y, x + 100, y ); // Back g.drawLine( x, y, x, y - 20 ); // trunk g.drawLine( x, y - 20, x + 20, y - 20 ); // back windshield g.drawLine( x + 20, y - 20, x + 20, y - 40 ); // Roof g.drawLine( x + 20, y - 40, x + 60, y - 40 ); // Windshield g.drawLine( x + 60, y - 40, x + 70, y - 20 ); // Hood g.drawLine( x + 70, y - 20, x + 100, y - 20 ); // Front g.drawLine( x + 100, y - 20, x + 100, y );

// Back wheel g.drawOval( x + 15, y, 14, 14 ); // Make backwheel animate wx1 = x + 22 - ( (int) ( 3 * Math.cos( 3 * x ) ) ); wy1 = y + 7 - ( (int) ( 3 * Math.sin( -3 * x ) ) ); wx2 = x + 22 + ( (int) ( 3 * Math.cos( 3 * x ) ) ); wy2 = y + 7 + ( (int) ( 3 * Math.sin( -3 * x ) ) ); g.drawLine( wx1, wy1, wx2, wy2 );

// Front wheel g.drawOval( x + 70, y, 14, 14 ); // Make frontwheel animate wx1 = x + 77 - ( (int) ( 3 * Math.cos( 3 * x ) ) ); wy1 = y + 7 - ( (int) ( 3 * Math.sin( -3 * x ) ) ); wx2 = x + 77 + ( (int) ( 3 * Math.cos( 3 * x ) ) ); wy2 = y + 7 + ( (int) ( 3 * Math.sin( -3 * x ) ) ); g.drawLine( wx1, wy1, wx2, wy2 );

// draw BMW name g.drawString("BMW", x + 30, y - 20 ); try { Thread.sleep( ( int )( 15 ) ); } catch ( InterruptedException e ) { e.printStackTrace( ); } g.setColor( eraseColor ); if ( x != ( endX - 1 ) ) g.fillRect( x, y - 60, 101, 81 ); //erase } }

public void drawFerrari( Graphics g, int startX, int endX, int y ) { int wx1 = 0; int wy1 = 0; int wx2 = 0; int wy2 = 0; for ( int x = startX; x < endX; x += 1 ) { // draw the BMW g.setColor( Color.RED ); // Bottom g.drawLine( x, y, x + 100, y ); // Back g.drawLine( x, y, x, y - 10 ); // trunk g.drawLine( x, y - 10, x + 10, y - 15 ); // back windshield g.drawLine( x + 10, y - 15, x + 20, y - 30 ); // Roof g.drawLine( x + 20, y - 30, x + 50, y - 30 ); // Windshield g.drawLine( x + 50, y - 30, x + 80, y - 15 ); // Hood g.drawLine( x + 80, y - 15, x + 100, y - 10 ); // Front g.drawLine( x + 100, y - 10, x + 100, y );

// Back wheel g.drawOval( x + 15, y, 14, 14 ); // Make backwheel animate wx1 = x + 22 - ( (int) ( 3 * Math.cos( 3 * x ) ) ); wy1 = y + 7 - ( (int) ( 3 * Math.sin( -3 * x ) ) ); wx2 = x + 22 + ( (int) ( 3 * Math.cos( 3 * x ) ) ); wy2 = y + 7 + ( (int) ( 3 * Math.sin( -3 * x ) ) ); g.drawLine( wx1, wy1, wx2, wy2 );

// Front wheel g.drawOval( x + 70, y, 14, 14 ); // Make frontwheel animate wx1 = x + 77 - ( (int) ( 3 * Math.cos( 3 * x ) ) ); wy1 = y + 7 - ( (int) ( 3 * Math.sin( -3 * x ) ) ); wx2 = x + 77 + ( (int) ( 3 * Math.cos( 3 * x ) ) ); wy2 = y + 7 + ( (int) ( 3 * Math.sin( -3 * x ) ) ); g.drawLine( wx1, wy1, wx2, wy2 );

// draw BMW name g.drawString("Ferrari", x + 25, y - 10 ); try { Thread.sleep( ( int )( 10 ) ); } catch ( InterruptedException e ) { e.printStackTrace( ); } g.setColor( eraseColor ); if ( x != ( endX - 1 ) ) g.fillRect( x, y - 60, 101, 81 ); //erase } }

public void drawJeep( Graphics g, int startX, int endX, int y ) { int wx1 = 0; int wy1 = 0; int wx2 = 0; int wy2 = 0; for ( int x = startX; x < endX; x += 1 ) { // draw the Jeep g.setColor( Color.BLACK ); // Bottom g.drawLine( x, y, x + 100, y ); // Back g.drawLine( x, y, x, y - 60 ); // Roof g.drawLine( x, y - 60, x + 60, y - 60 ); // Windshield g.drawLine( x + 60, y - 60, x + 70, y - 20 ); // Hood g.drawLine( x + 70, y - 20, x + 100, y - 20 ); // Front g.drawLine( x + 100, y - 20, x + 100, y ); // Back wheel g.drawOval( x + 15, y, 15, 15 );

// Make backwheel animate wx1 = x + 22 - ( (int) ( 3 * Math.cos( 3 * x ) ) ); wy1 = y + 7 - ( (int) ( 3 * Math.sin( -3 * x ) ) ); wx2 = x + 22 + ( (int) ( 3 * Math.cos( 3 * x ) ) ); wy2 = y + 7 + ( (int) ( 3 * Math.sin( -3 * x ) ) ); g.drawLine( wx1, wy1, wx2, wy2 );

// Front wheel g.drawOval( x + 70, y, 15, 15 ); // Make frontwheel animate wx1 = x + 77 - ( (int) ( 3 * Math.cos( 3 * x ) ) ); wy1 = y + 7 - ( (int) ( 3 * Math.sin( -3 * x ) ) ); wx2 = x + 77 + ( (int) ( 3 * Math.cos( 3 * x ) ) ); wy2 = y + 7 + ( (int) ( 3 * Math.sin( -3 * x ) ) ); g.drawLine( wx1, wy1, wx2, wy2 );

// draw Jeep name g.drawString("Jeep", x + 20, y - 30 ); try { Thread.sleep( ( int )( 18 ) ); } catch ( InterruptedException e ) { e.printStackTrace( ); } g.setColor( eraseColor ); if ( x != ( endX - 1 ) ) g.fillRect( x, y - 60, 101, 81 ); //erase } }

public void drawOtherCar( Graphics g, int startX, int endX, int y ) { int wx1 = 0; int wy1 = 0; int wx2 = 0; int wy2 = 0; for ( int x = startX; x < endX; x += 1 ) { // draw the other car g.setColor( new Color( 20, 200, 110 ) ); // Bottom g.drawLine( x, y, x + 100, y ); // Back g.drawLine( x, y, x, y - 20 ); // trunk g.drawLine( x, y - 20, x + 20, y - 20 ); // back windshield g.drawLine( x + 20, y - 20, x + 20, y - 40 ); // Roof g.drawLine( x + 20, y - 40, x + 60, y - 40 ); // Windshield g.drawLine( x + 60, y - 40, x + 70, y - 20 ); // Hood g.drawLine( x + 70, y - 20, x + 100, y - 20 ); // Front g.drawLine( x + 100, y - 20, x + 100, y ); // Back wheel g.drawOval( x + 15, y, 14, 14 ); // Make backwheel animate wx1 = x + 22 - ( (int) ( 3 * Math.cos( 3 * x ) ) ); wy1 = y + 7 - ( (int) ( 3 * Math.sin( -3 * x ) ) ); wx2 = x + 22 + ( (int) ( 3 * Math.cos( 3 * x ) ) ); wy2 = y + 7 + ( (int) ( 3 * Math.sin( -3 * x ) ) ); g.drawLine( wx1, wy1, wx2, wy2 );

// Front wheel g.drawOval( x + 70, y, 14, 14 ); // Make frontwheel animate wx1 = x + 77 - ( (int) ( 3 * Math.cos( 3 * x ) ) ); wy1 = y + 7 - ( (int) ( 3 * Math.sin( -3 * x ) ) ); wx2 = x + 77 + ( (int) ( 3 * Math.cos( 3 * x ) ) ); wy2 = y + 7 + ( (int) ( 3 * Math.sin( -3 * x ) ) ); g.drawLine( wx1, wy1, wx2, wy2 );

// draw Auto name // g.drawString("???", x + 30, y - 20 ); String autoName = currentAuto.getModel( ); if ( autoName.length( ) > 5 ) autoName = autoName.substring( 0, 3 ) + ".."; g.drawString( autoName, x + 30, y - 20 ); // NEW ADDED try { Thread.sleep( ( int )( 18 ) ); } catch ( InterruptedException e ) { e.printStackTrace( ); } g.setColor( eraseColor ); if ( x != ( endX - 1 ) ) g.fillRect( x, y - 60, 101, 81 ); //erase } }

public void drawValuesSet( Graphics g ) { g.setColor( Color.BLACK ); String message = ""; if ( currentModelValuesSet ) message = "correctly"; else message = "incorrectly"; g.drawString( "To this point, the models have been set " + message, xStart + 100, yStart + 125 ); }

public void drawMaxMiles( Graphics g ) { g.setColor( Color.BLACK ); g.drawString( "Student's current maximum is " + studentResult, xStart + 100, yStart + 100 ); g.drawString( "Correct current maximum is " + currentMaximumMilesDriven, xStart + 100, yStart + 125 ); }

public void drawFrequency( Graphics g ) { g.setColor( Color.BLACK ); g.drawString( "Student's current count is " + studentResult, xStart + 100, yStart + 100 ); g.drawString( "Correct current count is " + currentCountModelFound, xStart + 100, yStart + 125 ); } }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Support For Data Mining Applications Discovering Knowledge With Inductive Queries Lnai 2682

Authors: Rosa Meo ,Pier L. Lanzi ,Mika Klemettinen

2004th Edition

3540224793, 978-3540224792

More Books

Students also viewed these Databases questions

Question

What are the reason margin requirements exist?

Answered: 1 week ago

Question

Answered: 1 week ago

Answered: 1 week ago