Use Java Swing for developing the web browser. You have to compulsorily use Threads. In order to perform multithreading it is very much needed. Remember we can do more than one task at a time using the browser. So if it has to happen you have to use threads. Use JFrame, JPanel, JMenu, JMenuItem, JToolBar, Use Editable JComboBox, Use the Layout you feel is the best. Use Session for tracking the user (which page a user has visited) and also store the history content. If you're using Java then it is better if you use Java swing. Have a great day. Simply Enjoy!!