Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I'm supposed to add a car image.. How can I fix my code to do that on here? And lastly how can I add a

I'm supposed to add a car image.. How can I fix my code to do that on here?

And lastly how can I add a rectangular black background around my traffic lights (so that it looks more like a traffic light)?? I still need to see the pink background of course.

my car image: car.jpg

Here is my current code:

import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.swing.border.*;

public class TrafficLight extends JFrame implements ActionListener { JButton b1, b2, b3; Signal green = new Signal(Color.green); Signal yellow = new Signal(Color.yellow); Signal red = new Signal(Color.red);

public TrafficLight(){

super("Traffic Light"); /* We don't need to set any layout since by default Border Layout is set */ b1 = new JButton("STOP!"); b2 = new JButton("WAIT!"); b3 = new JButton("GO!"); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); green.turnOn(false); yellow.turnOn(false); red.turnOn(true); JPanel p1 = new JPanel(new GridLayout(3,1)); p1.add(red); p1.add(yellow); p1.add(green); JPanel p2 = new JPanel(new FlowLayout()); p2.add(b1); p2.add(b2); p2.add(b3); getContentPane().add(p1, BorderLayout.CENTER); /*Adding Signals at the center of Border layout */ getContentPane().add(p2, BorderLayout.SOUTH); /*Adding Signals at the bottom of Border layout */ pack();

}

public static void main(String[] args){

TrafficLight tl = new TrafficLight(); tl.setVisible(true);

}

public void actionPerformed(ActionEvent e){

if (e.getSource() == b1){

green.turnOn(false); yellow.turnOn(false); red.turnOn(true);

} else if (e.getSource() == b2){

yellow.turnOn(true); green.turnOn(false); red.turnOn(false);

} else if (e.getSource() == b3){

red.turnOn(false); yellow.turnOn(false); green.turnOn(true);

}

}

}

class Signal extends JPanel{ Color on; int radius = 25; int border = 10; boolean change;

Signal(Color color){

on = color; change = true;

}

public void turnOn(boolean a){

change = a; repaint();

}

public Dimension getPreferredSize(){

int size = (radius+border)*2; return new Dimension( size, size );

}

public void paintComponent(Graphics g){

g.setColor( Color.pink ); g.fillRect(0,0,getWidth(),getHeight());

if (change){ g.setColor( on ); } else { g.setColor( on.darker().darker().darker() ); } g.fillOval( border,border,2*radius,2*radius ); }

class Car{ int year; String make; double speed;

public Car(int y,String m,double s){ this.year = y; this.make = m; this.speed = s; }

public double getSpeed(){ return this.speed; } public String getMake(){ return this.make; } public int getYear(){ return this.year; }

public void accelerate(){ this.speed+=1; } } }

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 Net Database Programming

Authors: Rod Stephens

1st Edition

0789726815, 978-0789726810

More Books

Students also viewed these Databases questions