Shape, Circle, Rectangle, Square, Locatable, Selectable, Movable, and ShapeContainer.Drawable, which includes a single abstract method: void draw( Graphics g)Circle and ShapeContainer implement Drawable. Check your textbook and the Java API for examples. ShapesCanvas. It will simply display the shapes in the ShapeContainer that is passed to its constructor (by telling the ShapeContainer to draw itself). It should have a preferred size of 500 by 500.ShapeContainer with a few Circle objects in it, creating a ShapesCanvas to display this ShapeContainer, and adding it to an instance of JFrame.ShapesGame class is also based on JPanel. It includes an instance of your ShapesCanvas, along with a JLabel at the bottom to show the points and a JProgressBar on the right to show progress in each round. You should be able to add one or more instances of it to a JFrame or to a JApplet.MouseListener to your ShapesCanvas such that, mouseReleased first selects the Shape at the location of the mouse click (using the Selectable interface methods), then calls your ShapeContainer's removeSelected() method to actually remove it from the collection. Note that you will have to repaint the canvas to “see” the effect.java.swing) Timer object to your ShapesGame class, that triggers an ActionEvent every 500 milliseconds. Have its event handler add a new (randomly sized and positioned) Circle to the collection.JProgressbar using the progress counter value. JLabel with the points scored (you will need to write a method that actually computes the number of non-overlapping circles and adds that to the points scored).