Assignment 5 Solution

$29.99 $18.99

TheGoalgoal of this assignment is to help students understand the concepts of Java GUI development and Java Logging. This assignment extends the shipping store software from Assignment 2, by Description: replacing console-based user interface with a graphical user interface (GUI), and adding Java Logging functionality. All the operations remain the same as in assignment 2,…

You’ll get a: . zip file solution

 

 

Description

Rate this product

TheGoalgoal of this assignment is to help students understand the concepts of Java GUI development and Java Logging.

This assignment extends the shipping store software from Assignment 2, by

Description:

replacing console-based user interface with a graphical user interface (GUI), and

adding Java Logging functionality.

All the operations remain the same as in assignment 2, but this time the user

input/output will be handled through a Swing-based Java GUI. The decision

regarding which Swing components should be used to achieve the required

functionality is left to the students. The students may use the solution of assignment

2 provided by the instructor, but they are free to modify the given code to fit their

needs. In the provided solution, the class

acts as the main user interface

and the class

acts as the main controller class of the program.

MainApp

After adding the GUI, all the user input/output will be handled by the GUI. Hence,

the

ShippingStore

to be

re-written from

scratch, whereas, the

class will have

MainApp

class will not require many changes.

ShippingStore

In addition, Java Logging should be used to log the user actions and possible errors

or exceptions that may occur during the program execution. Every user interaction

with the GUI (e.g. adding a package, showing the list of packages, completing a sale

transaction, etc.) should be logged at the INFO level and every error or exception

should be logged at the WARNING or SEVERE level, depending on its severity. The

log output should be saved in a log file, in a human readable (not XML) format.

: to log user interactions with the GUI, you can add a log statement at each

Observer included in your program. Errors can be logged inside the catch part of

Hint

try-catch statements.

Bonus (10 extra points): Implement your code using multithreading so that if the

methods in the back-end take a long time to execute, your GUI front-end is still

responsive. A delay in execution can be simulated using the

sleep()

method.

Tasks:

1. Implement the GUI and Logging functionality without using a WYSIWYG GUI editor. You may still use your favorite IDE to write the code, but you should add all the GUI components manually by directly editing the code.

2. You may reuse code that was provided by the instructor or useful code that you may find from other sources to help you build your GUI (e.g. https://docs.oracle.com/javase/tutorial/uiswing/components/index.html, http://docs.oracle.com/javase/tutorial/uiswing/examples/misc/index.html)

3. Try to make your program as robust as possible, by using Exception handling to deal with possible problems that may occur during the program execution.

4. Use a standard Java coding style to improve your program’s visual appearance and make it more readable. I suggest the BlueJ coding style: http://www.bluej.org/objects-first/styleguide.html

5. Use Javadoc is for every public class, and every public or protected member of such a class.

Other classes and members may still have Javadoc as needed. Whenever an implementation comment would be used to define the overall purpose or behavior of a class, method or field, that comment is written as Javadoc instead. (It’s more uniform, and more tool-friendly.)

ThisLogistassignmentcs: can be done and submitted individually or in groups of two students.

Submit your answer in a single file (assign5_xxxxxx_yyyyyy.zip). The xxxxxx (and yyyyyy) is your TX State NetID.

Submit an electronic copy only, using the Assignments tool on the TRACS website for this class. Do NOT include executable or .class files in your submission.