This assignment is based on a typical home “Alarm Control Unit”.

Graphical User Interface - Specification

  • Create a GUI using the Java SWING API as per Figure 1.
    • Ensure your JFrame is a fixed size and appears in the screen centre.
  • Menu Bar - Should have File and Help menu items. File should have a “Quit” menu item and Help should have 2 menu items – “Instructions” and “About”
  • There should be a display screen below the menu bar as per Figure 1.
  • There should be 12 buttons in the centre of the panel as per Figure 1.
  • There should be 2 buttons – “Arm” and “Disarm” at the bottom as per Figure 1.

Functionality - Specification

  • File Menu – Should contain a “Quit” menu item.
    • Quit Menu Item – should activate a “showConfirmDialog” box. The program should exit only if “Yes” is clicked.
  • Help Menu – Should contain an “Instructions” and “About” menu items.
    • Instructions Menu Item – should display a dialog box with instructions on how to use the unit including the code.
    • About Menu Item – should display a dialog box displaying name of author along with “Event Driven Programming – CA1”.
  • Numerical button presses should display on the screen.
  • The correct code (“1234”) followed by clicking “Arm” should display “System Armed!” on the screen. The background should turn from green to red.
  • An incorrectly entered code should display “Incorrect code, try again!” on the screen and the background remains at green.
  • The correct code (“1234”) followed by clicking “Disarm” while the system is armed should display “System Disarmed!” on the screen. The background should turn from red to green.
  • The correct code (“1234”) followed by clicking “Disarm” while the system is already disarmed should display “System is already Disarmed!” on the screen.
  • Clicking the “Clear” button clears the screen.
  • Clicking the “Panic” button should display “Panic Alarm Sounded!” on the screen and the background should change to red.

Alarm Control Unit – Initial State See image.

Relevant Information

  • The program may be written to run within the BlueJ IDE or Eclipse.
  • You should provide a “Read Me” text file with your project stating what IDE you used for development. Any other information you feel may be relevant should be put into this file also.
  • You can download a runtime version of this project (.jar file) from Moodle for further clarification on what is expected.
  • If you wish to add further functionality to this project, please specify this in the “Read Me” file. If you do decide to add to this project, please be aware that the Interface should not change in terms of layout or core functionality.
  • This project should contain at least two classes and functionality should be split into short appropriate methods.
  • You will be required to explain segments of your code to the lecturer after project submission.

Extra Information:

  • You should insert comments to explain your code and to enable the smooth use of the Javadoc tool.
  • The use of correct Java code conventions will gain extra marks.
  • All code submitted should be your own work.
  • Your full project should be thoroughly tested and “zipped” prior to final submission.
Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.