Washing Machine Controller GUI in Java programming - Flinders University

Washing Machine

Task

Write a Java program that simulates a washing machine. The graphical user interface consists of two parts: the control panel for setting up washing conditions and the drawing panel for simulating the turbo movement when the machine starts. Note: the example GUI is to illustrate the key interface components rather than suggesting this is the only interface that everyone should stick to. You are encouraged to come up with your own design.

Level 1: Appearance and layout


  • Think about appropriate fonts and colours for the labels and the display. Also spend some time on background colours, borders, and the shape of buttons.
  • Work out a layout that resembles a washing machine control panel. Washing machines usually have different interfaces, but they share some common components. You are also encouraged to design a novel interface that you could possibly justify. You may use any number of panels and any layout managers.

Level 2: Event handling

  • The toggle “ON/OFF” button turns the machine on/off.
  • Pushing the “WATER VOL” button increases the water level until it is full and then pushing again will make it drop back to empty.
  • Pushing the “CYCLE STAT” button cycles through the options of “Wash”, “Rinse”, and “Spin”. “WASH COND” works in the same way and determines the washing time, but it is only available when “Wash” is selected.
  • Pushing the “START/PAUSE” button starts counting down the time. When it reaches zero, the machine is automatically off. Pushing the “START/PAUSE” button again while the machine is working will pause it.

Level 3: Turbo simulation


  • When the machine is working, you need to animate the turbo movement. Design an interface that shows it is rotating clockwise or anti-clockwise with a certain speed.
  • In the “washing” and “rinse” state, the turbo rotates both clockwise and anti-clockwise, but “rinse” has a faster speed. In the “spin” state, the turbo rotates only clockwise or anti- clockwise with an extremely high speed.

Level 4: Dynamic Resizing


  • Allow the window size to vary and to make the components adapt in size or position to accommodate the change. To get ultimate fine-grained control over the layout, you'll probably need to add extra panels for various groups of components, each with their own layout manager. You also need to use coordinates that are relative to the sizes of components to draw shapes. The goal is to end up with something that behaves "sensibly" when the running application window is resized.

Output


Get Project Solution Now

Comments