Assume you are creating an order entry and editing application for a book store. An order consists of a product, quantity, total price, payment type including Credit/Debit card account numbers. In addition, the order will have a billing address as well as a shipping address. Each of the address objects consists of First Name, Last Name, Address, City, State, and Zip code.
The book store only carries, "Computer Science 101", "History 101", "Geography 101", "English 101", "Biology 101", "Algebra 101", and "Calculus 101". Each of these books cost $50. Ignore any sales tax calculations for this implementation. (NOTE: I created a sample layout below.
- The quantity entered should be numeric and the maximum a customer can order is 5. If the quantity is more than 5, an error message should be displayed, "Ordered Quantity cannot be more than 5" (The message can be a pop-up).
- The states can be any of the states in USA. The entered zip code should be numeric. An error message should be displayed if non numeric values are entered.
- When the user places an order the total price should be calculated and displayed using a text box (un-editable).
- All of the controls excluding Labels should have "lined" borders (please use 4 pixels).
- The application should use "Nimbus" look and feel.
- Your application should use JLabels, Text Fields, JComboBox to display products, radio buttons for selecting payment type, and a JTable to display the orders placed.
- A Table should be created using JTable that displays the Customer's First Name, Last Name, billing address, Item ordered, and quantity ordered.
- When the user presses a 'new' button, the order panel(s) should be cleared (not the table contents).
- When the user submits an order, the order should be added to the table and the controls should be cleared. Also, an information dialog should be displayed to confirm the order before accepting.
- As I press New button and submit a order, the number of orders should keep on increasing.
- When the user presses the 'Edit' button after selecting an order from the table, the selected order should be displayed for editing and saved when the 'submit' button is pressed. If the user selects multiple rows or no rows an error message should be displayed. "At least one row must be selected" message if no rows are selected, "Only one rows should be selected" message if multiple rows are selected.
- All error message can be displayed using popup dialog messages.
- Even though the table rows are not displaying the entire billing, shipping, and order details, your implementation should display all of the details for editing, when the user presses the Edit button after selecting a row.
- When the user presses the 'Cancel' button, all the changes should be discarded. This applies to both 'New' as well as 'Edit'.
- User cannot edit any of the columns displayed in the table.
- It is recommended to create a Table Model to handle the data.
- Implement appropriate table listeners as needed to handle the rows selected.
- Use a split pane that is split horizontally, with the top half holding the Order Panel and the bottom half holding the JTable.
- It is recommended to create additional panels to create the layouts.