The required functionality & components are:
1. Any deficiencies from the first assignment must be corrected, such as:
- Any missing or miscoded database methods (add, delete, modify, read)
- Non-conformance with input format requirements
2. Create a GUI interface for inputs and outputs, which should include these elements
- A JFrame to hold the other elements, replacing console I/O
- A JTextField for command inputs
- A JTextArea for output, when necessary
- JButtons for saving and loading data files
3. Component details:
- The JTextField will accept text input in the same single-line format as assignment 1. After a command is entered, it should remain visible until overwritten by the user.
- The JTextArea will display any text output, in the same formats as assignment 1. Any output should remain visible until replaced by a new command. If a command generates no output, the JTextArea should be blank after the command is processed.
- Save: The JButton should be labeled “Save”. Pressing this component will cause the current database to be saved as file/path “C:/EDA2.dat”.
- Load: The JButton should be labeled “Load”. Pressing this component will cause the file “C:/EDA2.dat” to be loaded into the Employee array.
4. Error checking:
- The application will contain code for checking when the user enters an improper set of keywords for a command. In that event, the program should use a JOptionPane showMessageDialog object to display an “invalid command” alert. After the alert window is closed, the application should continue operating normally.
- The application will contain code for checking array index out of bounds exceptions when adding a new Employee to the database. If that exception should occur, the array size will be doubled and the add command retried. This exception should only occur when the array is entirely full of Employee objects.
Program Code Constraints:As with the previous assignment, this program should be written as a single .java file (the Employee class should again be included in the EDA2.java file, after the EDA2 class definition). Each of the required functionalities should be implemented as separate methods (as far as possible) and operate by passing parameters and/or returning values. Comments should be provided for the class and for each variable and method, explaining their usage.