PasswordTester
For this lab you will develop a GUI password tester. The user will enter a password, and the application will evaluate the strength of the password based on its length and composition. The results of the evaluation will be reflected within the GUI with both a text message and an appropriate graphical representation.
Step 1: Layout GUI on Paper
Begin on paper -- this step must be completed and approved BEFORE moving on to the actual development. Layout a GUI on paper that includes the appropriate controllers to allow the user to enter the following:
- Instructions: user instructions are displayed in this component.
- Strictness: a control that allows the user to specify either a strict evaluation or a lax evaluation. (For example, lax evaluation will only look at password length, while strict evaluation will also consider what characters are used.)
- Password: user specifies text to be evaluated in this component.
- Evaluate: after typing the proposed password, this control causes the text to be evaluated.
- Feedback: once password is evaluated, results are displayed in this component
Make sure your paper layout includes ALL PANELS and GUI components that will be needed.
BEFORE continuing on, bring me your proposed GUI for approval. Your final grade will be impacted by how closely your final product matches the GUI (with allowances for updates along the way)
Step 2: Layout GUI in Java
Create a Java main class named PasswordTester and build the GUI you proposed in step 1. Include a main method that creates an instance of the class by calling its constructor. All GUI layout happens within the constructor.
Step 3: Add Action Listener(s)
Add (an) appropriate action listener(s) to manage the GUI. For now, the actionPerformed should simply be to display to System.out a message indicating what event has occurred (e.g., "User has entered the password FooBarBam").
Step 4: Implement Evaluation Function
Modify the action listener(s) so that the evaluation is actually carried out. Criteria are as follows:
Lax evaluation:
- Weak: fewer than 8 characters
- Acceptable: 8-12 characters
- Good: more than 12 characters
Strict evaluation:
- Weak: password has fewer than 8 characters
- Acceptable: password has more than 8 characters
- Good: password has more than 8 characters and includes both letters and numbers
- Strong: password has more than 12 characters, and includes uppercase letters, lowercase letters, and numbers
