COIT11134 Object Oriented Programming (T2 2018)
Assignment Item 1 – GUI and event handling
Due date: Week 6 Friday (24-Aug-2018) 11:45 PM AEST ASSESSMENT
Gain an understanding of Object-Oriented Programming (OOP) concepts in Java
Obtain practical skills in Graphical User Interface (GUI) programming by
implementing an event-driven application using Java Swing library components.
Develop and test stand-alone Java applications.
Assignment Task (Version 1.1 last updated on 13/08/2018)
ABC College offers short courses in information technology. They have around 300 students
enrolled with a team of 25 staff members. The management is implementing a trial to see
how viable outsourcing Information technology service operations will work with a centralised
call centre driven model. Students and staff need to make a call to raise any
software/hardware technology requests. This system keeps track of the request only for the
current day and this information can be delegated to a local technician to handle each
Develop a java GUI application using swing components to implement the above
The functional requirements for the proposed system are:
1. Book a job request.
2. Edit a job request.
In this assignment you can only lodge and edit a single job request.
Below are the itemised prices for each request. The staff requests are more expensive
because they are more time consuming and might deal with an entire course.
Request Type Student Staff
1 Software $16.99 $34.99
2 Hardware $29.99 $49.99
Example of valid ids’ S1234,S0015 T3402,T4123
Page 2 of 5
Uml class collaboration diagram
BookingFrame Swing Components Events
JFrame, JPanel formWindowActivated
Inputs :RequestNumber (Autofill) JTextField
Inputs :RequestId JTextField
Inputs :RequestType JCheckBox
Outputs : JLabel
Operations: Book, Edit, Exit JButton Click Events
EditFrame Swing Components Events
JFrame, JPanel, ButtonGroup
Inputs: RequestNumber (Autofill) JComboBox, Change Event
Inputs: RequestType JCheckBox
Inputs: RequestStatus JRadioButton
Outputs: JLabel, JTextArea
Operations:Update, Delete , Cancel, Exit JButton Click Events
Every New Request will be either of a StudentRequest or a StaffRequest with default values
for requestNumber set to the autofilled number, requestStatus set to true (open), openDate
set to current date, closeDate set to null, requestType is set to a number[1-3] and charge set
to 0.Charge should only be computed when requestStatus is set to false(closed).
Page 3 of 5
Uml state diagram showing flow control
JFrames should be used and can be designed graphically (drag and drop) or manually.
Bonus marks given if design is done manually using layout managers, since more effort and
learning is involved. (See marking guide)
Booking Frame Sketch
When this frame is loaded and becomes visible the request number should be auto filled.
Validations for Booking:
Request Id should start with ‘S’ or ‘T’ and can be followed by only 4 digits.
Request Number should be auto filled for each request starting from 1000.
Request type must be selected, one or both check boxes.
When the Book Button is clicked:
Validations must be done and relevant instance must be created. Edit button should only be
enabled when a request instance does exist.
When the Edit Button is clicked:
A new Frame with the details of the instance created must be shown.
When the Exit Button is clicked:
The application must terminate.
Page 4 of 5
Edit Frame sketch
When this frame is loaded and becomes visible. The dropdown box must be populated with
a single request number from an existing request instance.
Validations for the Update Button:
Request Number and Request type should be selected. (No marks awarded)
When the Update Button is clicked:
Request Status if open, the close date should be null and the charge should be set to 0.0
Request Status if closed, the close date should be auto filled with current date and charge
should be calculated and set based on the request type. All these details must be shown in
the text area.
When the Delete Button is clicked:
The request instance should be set to null and all the controls except the exit button must
When the Cancel Button is clicked:
The controls must be reset to the values in the current request instance.
When the Exit Button is clicked:
Edit frame should be disposed and Booking frame should be made visible.
The java application lets you access all undisposed frames from anywhere using
Frame.getFrames().This can be used to make Booking Frame visible from inside the Edit
Frame before it exits. Date format example below.
SimpleDateFormat DATE_FORMAT = new SimpleDateFormat(“dd-MM-yy:HH:mm”);
System.out.printf(“%s”, DATE_FORMAT.format(new Date()));
What if my code is similar to other student?
All students will have the same shell (class names and method signatures) provided in
the class diagram. Your swing control names, frame layout, comments and code under
each method/listener will be different.
Page 5 of 5
The assignment must be submitted in the following form:
A zip file containing all the Java source code files. If done using NetBeans, a
zip of the entire project folder.
Report.docx (a word file containing screen shots showing various inputs, error
messages and outputs from your application program when it is run).
Assignment 1- Marking criteria