Code : COIT11134
Subject : Java event handling
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.
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 request.
Develop a java GUI application using swing components to implement the above functionality.
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.
Example of valid ids’
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).
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 Id 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.
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 Id 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.