Create a new class called circle inside of the project

Assignment Help C/C++ Programming
Reference no: EM132107841

Programming Assignment

The program will create a "mass" of jiggling amoebas. Each amoeba will be drawn as a ellipses of random size and location. After all the amoebas are placed initially, you will be able to drag a circle around the screen with the mouse.

Get Started

Under Eclipse, create a new project called Amoebas.

The Circle Class

Create a new class called Circle inside of the project

Make sure to select as its superclass, "JComponent".

Do not put the main function here.

Make sure you fully comment this code (to start you may well want to select "Generate Comments" when you build the class.

A Circle should have the following instance variables (fields):

selected - true if this circle has been clicked on

fill - Should the amoeba be solid or just an outline

offset - A Point that holds where the mouse was pressed. This is only for use when dragging

A Circle should have the following methods:

The Constructor

Constructor- Take in the x,y location for this object and the width,height of the object. It should optionally take in a "name" allowing you to name your circles.

The constructor should then "initialize the GUI element", half of the time, make this object filled in (and half of the time just outlined), half of the time, set the color to red (and half of the time blue). Additionally the constructor should "inform" java that a circle can listen to the mouse motion and dragged events.

public void paintComponent(Graphics graphics)

In order for an GUI object to "show up" on the screen Java needs to know what to do with it when it comes its time to "be drawn". The paintComponent method is invoked on ALL objects (which have been added to the main window (i.e., all Components)) by the GUI thread, whenever Java decides it is time to draw the objects (e.g., after a repaint is asked for).

This method should draw a circle (filled or hollow, as previously determined) on the "graphics" object.

public void mousePressed(MouseEvent event)

public void mouseDragged(MouseEvent event)

These are some of the last methods you should work on once you have all of your "amoebas" showing on the screen.

The functionality that we are looking for is to allow the user of the GUI to drag an object around the screen.

This can be accomplished by using the setLocation method (which is inherited from JComponent).

Note: for a more effective program, the dragged circle should be placed on top of the other circles.

All those other required Mouse Methods

We are simply going to "ignore" all the other mouse interaction (at least for this base requirements of this program). You should place comments inside the body of each method saying that the method has no use in your program.

Why can't we just remove those methods then? Answer: Because the mouse interfaces that we are implementing require them to be there... Even if they don't do anything.

The Main Program

Create a class called Main which sole purpose is to hold the main program.

The main method

The main method is a static method who merely exists to get the program running. Your main method should do the following:

create the GUI window (i.e., a JFrame),

create X circle objects and add them to the GUI window

start the jiggling

The Jiggler Class

(Or putting the jiggle where it matters)

Create a new class called Jiggler. This class should be a child (or sub) class of the Thread class. It should be in the same Project, and the same Package as the Circle class.

A Thread is a separate independent executing sub-program. We will be using our thread to "jiggle" the amoebas. The main program will also be in a thread, but that thread will end as soon as the main function ends. Finally the GUI windows, drawing, events, etc are all in their own threads.

The Jiggler class should keep track of the following information:

drawables - this should be an array (list) of our circles, but because we may draw other things in the future, do not make the type ArrayList<Circle>, make it ArrayList<JComponent>

fps - this should be a Jlabel that will show the frames per second

spread_out - true/false if the program is pushing objects apart

The Jiggler should have at least the following methods:

The Constructor

Constructor- Take in a FPS label (created by the main program but stored here) and the list of drawables (circles) which were also created by the main program but need to be stored here.

The run method, "public void run()"

The run method is the main method of a thread. Interestingly enough a thread beings, not by directly calling something like: thread.run(), but by calling: thread.start()!

In this method, your code should loop forever!

Inside of this infinite loop, randomly set the location of each component (stored in some array/list) to a new location plus or minus 1 pixel in the X and Y directions.

Reference no: EM132107841

Questions Cloud

Determining the guaranteed delivery time : For a package selected at random, what is the probability that it will be delivered in 18 hours or less?
Why do you think the researchers used this type of sample : a. Would this be called a random sample, a systematic sample, or a convenience sample? b. Why do you think the researchers used this type of sample?
Brief summary of assessment : Write a brief summary of your assessment that combines your findings from parts (a) through (c).
Displays the conversion of an entered number of dollars : Write a program named Dollars that calculates and displays the conversion of an entered number of dollars into currency denominations-20s, 10s, 5s, and 1s.
Create a new class called circle inside of the project : Make sure you fully comment this code (to start you may well want to select "Generate Comments" when you build the class.
Write a program named tests that declares five variables : Modify the Tests program to create a new one named TestsInteractive that accepts five test scores from a user.
Create one object of each concrete class - : Create one object of each concrete class - using the data given below - and store them in an array of Shapes.
How does this research study contribute to the field : Describe what you will do to complete it. List the types of resources and information you will need to obtain in order to complete each task.
Explain simmels thesis regarding how group size impacts : Simmel was primarily concerned with an examination of group size and distance in terms of impact on form and type of social interaction.

Reviews

Write a Review

C/C++ Programming Questions & Answers

  Create two arrays with ten random numbers

Determine the largest difference (only subtract corresponding index numbers) between these two arrays. (hint: create a third array with the differences)

  Write a cpp application prompts user to choose a series

Write a C++ application Prompts the user to choose one of the following series: 1 + 1/2 + 1/3 + ... + 1/n, ((((x * 2) * 2) * ...) * 2) series of n multiplications x + (x * 1) + (x * 2) + (x * 3) + ... + (x * n).

  How to declare c++

How to declare C++

  Program to input the length of the side from the keyboard

write a program to input the length of the side from the keyboard ,use the class to obtain the areas of all shapes and display the results on the screen

  Write a program to evaluate an arithmetic expression

Write a program to evaluate an arithmetic expression written in postfixed notation. The arithmetic expression will be input as a String.

  The staffs need a program that can determine

The staffs need a program that can determine whether children have been naughty or nice. individual data files(can be any name) for each childred are available that consist of 368(365+3)integer number each.

  Determine which customers must be served

Write a program to determine which customers must be served from each field stations.

  Compute the power loss in a transmission line

A program to compute the power loss in a transmission line with a resistance of 0.05 ohms/mile. Compare the power loss if 500 kw of power is transmitted from a power generating station to cities at distances of 20, 30, 40, 50... 100 miles at 100 V..

  Write a function that takes a linked list of items

Using C++ write a function that takes a linked list of items and deletes all repetitions from the list. in your implementation assume that items can be compared for equality.

  Add a non member function

For the code below add the following. Add a non member function that will run the show function of a Sport object. This object is the one parameter of the function.

  Uses the sieve of eratosthenes algorithm

Write a complete program that uses the Sieve of Eratosthenes algorithm to list all prime numbers from 1 to 1,000 .

  Calculates the average of numbers

Write a C program which takes n number of element from user (where, n is specified by user), stores data in an array and calculates the average of those numbers. Output of the program should look like this;

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd