A JAVA Web Browser Overview For this assignment, you will be creating a web browser in JAVA using SWING. Details The GUI interface for your web browser should be similar to the following example : The title of the JFrame should be “Java Web Browser” . You will create two “Boxes”. The first will contain the JLabel that says “Location” and the JTextField for the URL. The second will contain the JButtons with labels “back”, “forward”, “home” and “reload”. These two boxes should be contained inside of a JToolBar which is then places at the top of the screen. Below the JToolBar will be a JEditorPane. It will be of type HTML and should be set to non-editable. The JEditorPane will be scrollable. Your web browser should start on the page http://www.google.com The home button should take you to http://www.cnn.com Add a Launch/Go button next to the URL text field on the right side. When this button is pressed, you should be able to visit the URL entered. The forward and back buttons should behave exactly as they do in any other web browser. This means that the forward button should be disabled if there are not more pages in front of the one your are viewing. Similarly, the back button will be disabled if there are no more pages behind the one you are viewing. The reload button should use the build in JAVA command to reload a page Add a “search” text field to your program that will automatically perform a search using one of the major search engines (google, yahoo, etc.) Add icons to your home, back, forward, and reload buttons. Implement a “history” menu that stores every page visited. Make sure it does not store duplicates. For this, make a connection to MySQL database, create History table and store all the information like pageURL visited, date, and time. Application needs to be able to query the database table and then display the result. Implement a “view source” button that will display the HTML source code of the current page being viewed. Implement an Quit MenuItem to close the browser It would be nice if you can utilize MutliThreading concept to the application. Actual Program Output Your program should look like the example picture above. Proper commenting Your program should be properly commented. This means that a person who is unfamiliar with the JAVA programming language should be able to understand what each line/section of your code is doing by simply reading your comments. There is no such thing as too much commenting, so feel free to comment as much as you want. Programming style This is a catch “all” for many things. Your program should be indented correctly. The code should be easy for the grader to read. You should optimize your code so that you are meeting the objectives in as little lines of code as possible. You should attempt to use the most advanced programming technique possible to complete the objective. For example, use loops instead of manually repeated the same block of code. Your variable names should be clear and concise. Program has all of the elements listed in the description Please be sure to read the details section very carefully to be sure that you have all of the required elements. PowerPoint Presentation You should prepare a 15 minute slide show (e.g. Power Point) that includes the following: 1. Introduction/Basic Description of Your Project 2. User Guide: These slides should clearly and concisely shows the user (i.e., me) how to use your software. Screenshots are important. 3. Technical Description: This part describes the inner workings of your project. Describe the classes and interfaces used in your code and discuss how they interact with one another. Include lots of figures and screenshots to help illustrate your points. 4. Demonstration: I want you to demonstrate that your program/project works. I may ask you to try certain operations in an attempt to crash your program. Hint: Use Exceptions where appropriate. 5. Conclusion: Discuss what you learned from doing this project. Comment on what you did well and what you could have done better.