Implement threads and a gui interface using advanced java

Assignment Help JAVA Programming
Reference no: EM131565546

Project 3

Introduction - the SeaPort Project series

For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:
• SeaPortProgram extends JFrame
o variables used by the GUI interface
o world: World
• Thing implement Comparable <Thing>
o index: int
o name: String
o parent: int
• World extends Thing
o ports: ArrayList <SeaPort>
o time: PortTime
• SeaPort extends Thing
o docks: ArrayList <Dock>
o que: ArrayList <Ship> // the list of ships waiting to dock
o ships: ArrayList <Ship> // a list of all the ships at this port
o persons: ArrayList <Person> // people with skills at this port
• Dock extends Thing
o ship: Ship
• Ship extends Thing
o arrivalTime, dockTime: PortTime
o draft, length, weight, width: double
o jobs: ArrayList <Job>
• PassengerShip extends Ship
o numberOfOccupiedRooms: int
o numberOfPassengers: int
o numberOfRooms: int
• CargoShip extends Ship
o cargoValue: double
o cargoVolume: double
o cargoWeight: double
• Person extends Thing
o skill: String
• Job extends Thing - optional till Projects 3 and 4
o duration: double
o requirements: ArrayList <String>
// should be some of the skills of the persons
• PortTime
o time: int

Eventually, in Projects 3 and 4, you will be asked to show the progress of the jobs using JProgressBar's.

Here's a very quick overview of all projects:

1. Read a data file, create the internal data structure, create a GUI to display the structure, and let the user search the structure.
2. Sort the structure, use hash maps to create the structure more efficiently.
3. Create a thread for each job, cannot run until a ship has a dock, create a GUI to show the progress of each job.
4. Simulate competing for resources (persons with particular skills) for each job.

Project 3 General Objectives

Project 3 - More JDK classes - GUI's and threads

• Explore other GUI classes, such as JTree, JTable, and JProgressBar.
• Create and run threads
o Competing for one resource.

Documentation Requirements:

You should start working on a documentation file before you do anything else with these projects, and fill in items as you go along. Leaving the documentation until the project is finished is not a good idea for any number of reasons.

The documentation should include the following (graded) elements:

• Cover page (including name, date, project, your class information)
• Design
o including a UML class diagram
o classes, variables and methods: what they mean and why they are there
o tied to the requirements of the project
• User's Guide
o how would a user start and run your project
o any special features
o effective screen shots are welcome, but don't overdo this
• Test Plan
o do this BEFORE you code anything
o what do you EXPECT the project to do
o justification for various data files, for example
• Lessons Learned
o express yourself here
o a way to keep good memories of successes after hard work

Project 3 Specific Goals:

Implement threads and a GUI interface using advanced Java Swing classes.

1. Required data structure specified in Project 1:
1. World has SeaPort's
2. SeaPort has Dock's, Ship's, and Person's
3. Dock has a Ship
4. Ship has Job's
5. PassengerShip
6. CargoShip
7. Person has a skill
8. Job requires skills- NEW CLASS for this project!
9. PortTime
2. Extend Project 2 to use the Swing class JTree effectively to display the contents of the data file.
o (Optional) Implement a JTable to also show the contents of the data file. There are lots of options here for extending your program.
3. Threads:
o Implement a thread for each job representing a task that ship requires.
o Use the synchronize directive to avoid race conditions and insure that a dock is performing the jobs for only one ship at a time.
- the jobs of a ship in the queue should not be progressing
- when all the jobs for a ship are done, the ship should leave the dock, allowing a ship from the que to dock
- once the ship is docked, the ships jobs should all progress
- in Project 4, the jobs will also require persons with appropriate skills.
o The thread for each job should be started as the job is read in from the data file.
o Use delays to simulate the progress of each job.
o Use a JProgressBar for each job to display the progress of that job.
o Use JButton's on the Job panel to allow the job to be suspended or cancelled.
4. As before, the GUI elements should be distinct (as appropriate) from the other classes in the program.
5. See the code at the end of this posting for some suggestions.

Suggestions for Project 3 Job class. Here is a sample of code for a Job class in another context, the Sorcerer's Cave project. The code for this class will need some modifications, but this should give you an idea of the issues involved.

Attachment:- SeaPortProgram.zip

Reference no: EM131565546

Questions Cloud

Find the velocity v of a falling brick in terms of the time : When we consider the resisting force of the air, the velocity v (in ft/s ) of a falling brick in terms of the time (in s) is given by dv/(32 - 0.5v) = dt.
Simple java programming tests : The java coding that accepts a distance it kilometers, sends it to a method which converts it to miles, and then displays the result
Calculate the voltages across the three series resistances : Using circuit reduction techniques on the above circuit. Calculate the voltages across the three 'series' resistances. Calculate the circuit's total resistance
Discuss about the several types of communication : There are several types of communication, including formal and informal types of communication.
Implement threads and a gui interface using advanced java : Implement threads and a GUI interface using advanced Java Swing classes - Implement a thread for each job representing a task that ship requires
The center for medicare and medicaid services : We are challenged to reduce 30 day hospital readmissions across the state of Ohio for all lines of business.
Provide documentation to support meeting between git and fwa : Your task, in Paper 2, is to provide preparation documentation to support face-to-face meetings between GIT and the FWA.
Discuss about the development of policies : Data management is the development of policies, practices, and procedures in order to manage and maintain the needs of a corporation.
Design a flowchart or pseudocode : Design a flowchart or pseudocode - The Barking Lot is a dog day care center Creating a puesdocode for given example

Reviews

Write a Review

JAVA Programming Questions & Answers

  Write a java program to accept a day number

Write a Java program to accept a day number from the user and display the corresponding day name by using the if/else construct. Rewrite the program using the switch case construct

  Prepare an executive summary report for presentation

Identify the motivation for potential attacks and summarize the importance of identifying them early in the development or implementation process

  Main method to test a student graduate record examination

I need a Java solution named TestGRE.java with a main method to test a Student Graduate Record Examination Score Managment System using BinarySearchTree java classes.

  How you expected your strategy to improve performance

Evaluate the manner by which the threaded sort application performs - Propose a strategy to improve the performance

  The waiting state in java programming

Which is the way in which a thread can enter the waiting state in java programming?

  Coin change program

coin change program. Make change using fewest number of coins. I'm attempting dynamic programming and i may be misunderstanding the algorithm

  How many parameters are supposed to be passed

How many parameters are supposed to be passed to the constructor or how big to create the array - Method Union comparing two different objects?

  Implement a program to reverse the digits

Write a method, reverseDigit, that takes an integer as a parameter and returns the number with its digits reversed. For example, the value of reverseDigit(12345) is 54321.

  Create a project in eclipse

Create a new project

  Exemplify and explore some important issues of replication

You need to demonstrate the system with one server FE, three RMs and several Trams running at the same time. You will need to show service continuity in presence of failure: two RMs will be killed and the system should continue simulating the tram..

  Write a java windowed application

Write a Java windowed application to do online quiz on general knowledge and the application also displays the quiz result.

  Create an array of size n and fill it

Sketch a high level design of what you want to implement using the UML notation. At the very least, you should have a use case diagram, class diagram and a sequence diagram.

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