Important Updates:
- Instructions on how to use my PasswordGenerator code within Eclipse (so you don't need to do the command window).
- Java documentation on the PasswordGenerator class -- browse through this for information on how to use Password Generator (you can also figure it out by playing with the PasswordTester.java file I've provided).
PasswordUtility
For this lab you will enhance your PasswordTester from lab 7.1 to include a password generator as well. The actual generator will be provided for you; your task will be to design and implement the GUI.
Step 0: Select Functions
Based on our in-class discussions, decide which features you would like to implement in your PasswordUtility. At a minimum, you must include the following:
- Standard Interface
: User can specify
- password length
- strength (e.g., good, better, best)
- "avoid ambiguous characters"
- Advanced interface
: User can specify
- length
- "avoid ambiguous characters"
- use mixed case
- how many uppercase characters (exact)
- use digits
- how many digits (exact)
- use symbols
- how many symbols (exact)
- specification of which symbols
- in addition to length, user can select number of uppercase, number of digits
- Challenge features : User can specify
- ranges for uppercase, digits, and symbols (in addition to or in place of exact quantities)
- minimum values for uppercase, digits, and symbols (n or more...)
- subsets of uppercase, digits, symbols (e.g., use only specified symbols, uppercase, etc.)
- enforce grouping (group digits together or spread throughout); if grouped, at beginning, middle, end
- beginning char restrictions (e.g., password must start with a letter)
- pronounceable
- whitelist, blacklist
- history of passwords generated
- copy generated password to clipboard
Before moving on to designing the GUI, bring me a neat and clean copy of your list of proposed features for approval. At this stage you do NOT need to have them laid out; simply listed.
Step 1: Layout GUI on Paper
On paper, layout the components you will need based on step 0. At each level, your diagram should specify the various containers (extensions to JFrame and JPanels) and their layouts (BorderLayout, GridLayout, FlowLayout), down to the specific components (JLabel, JButton, ...)
Make sure your paper layout includes ALL PANELS and GUI components that will be needed.
BEFORE continuing on, bring me a neat and clean copy of your proposed GUI for approval.
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 functions are actually implemented.
