Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Object-Oriented Design and Patterns in Java (the 3rd Edition Chapter 5 ) - Create a directory named as the question number and save the required

Object-Oriented Design and Patterns in Java (the 3rd Edition Chapter 5)

- Create a directory named as the question number and save the required solutions in the directory.

- Each problem comes with an expected tester name. In the directory for a given problem, including the tester and all java classes successfully run this tester.

Exercise 5.4

SliderTetser.java - A slider is a user interface component that allows a user to specify a continuum of values. To be notified of slider movement, you need to attach a class that implements the ChangeListener interface type. Read the API documentation for JSlider and ChangeListener. Implement a program that contains a slider and a car icon. The size of the car should increase or decrease as the slider is moved.

----------------------------------------------------------------

CarIcon.java

import java.awt.*; import java.awt.geom.*; import javax.swing.*; /** An icon that has the shape of a car. */ public class CarIcon implements Icon { /** Constructs a car of a given width. @param width the width of the car */ public CarIcon(int aWidth) { width = aWidth; } /** Changes the width of the car @param width the width of the car */ public void setIconWidth(int aWidth) { width = aWidth; } public int getIconWidth() { return width; } public int getIconHeight() { return width / 2; } public void paintIcon(Component c, Graphics g, int x, int y) { Graphics2D g2 = (Graphics2D)g; Rectangle2D.Double body = new Rectangle2D.Double(x, y + width / 6, width - 1, width / 6); Ellipse2D.Double frontTire = new Ellipse2D.Double(x + width / 6, y + width / 3, width / 6, width / 6); Ellipse2D.Double rearTire = new Ellipse2D.Double(x + width * 2 / 3, y + width / 3, width / 6, width / 6); // the bottom of the front windshield Point2D.Double r1 = new Point2D.Double(x + width / 6, y + width / 6); // the front of the roof Point2D.Double r2 = new Point2D.Double(x + width / 3, y); // the rear of the roof Point2D.Double r3 = new Point2D.Double(x + width * 2 / 3, y); // the bottom of the rear windshield Point2D.Double r4 = new Point2D.Double(x + width * 5 / 6, y + width / 6); 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.fill(frontTire); g2.fill(rearTire); g2.setColor(Color.red); g2.fill(body); g2.draw(frontWindshield); g2.draw(roofTop); g2.draw(rearWindshield); } private int width; }

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

Visual Basic 4 Ole Database And Controls Superbible

Authors: Michael Hatmaker, C. Woody Butler, Ibrahim Malluf, Bill Potter

1st Edition

1571690077, 978-1571690074

More Books

Students also viewed these Databases questions