{"id":27213,"date":"2021-05-14T23:10:06","date_gmt":"2021-05-15T03:10:06","guid":{"rendered":"http:\/\/bangla.salearningschool.com\/recent-posts\/implementation-of-a-simple-browser-in-swing-the-user-can-specify-a-url-to-load-into-the-browser-jeditorpane-programming-code-examples-java-j2ee-j2me-advanced-swing\/"},"modified":"2021-05-14T23:10:06","modified_gmt":"2021-05-15T03:10:06","slug":"implementation-of-a-simple-browser-in-swing-the-user-can-specify-a-url-to-load-into-the-browser-jeditorpane-programming-code-examples-java-j2ee-j2me-advanced-swing","status":"publish","type":"post","link":"http:\/\/bangla.sitestree.com\/?p=27213","title":{"rendered":"Implementation of a simple browser in Swing (The user can specify a URL to load into the browser (JEditorPane)) #Programming Code Examples #Java\/J2EE\/J2ME #Advanced Swing"},"content":{"rendered":"<pre>\nBrowser.java Implementation of a simple browser in Swing. The user can specify a URL to load into the browser (JEditorPane). By attaching an Hyperlink Listener, the editor pane is responsive to hyperlinks selected by the user. Uses the following class and image:\nimport javax.swing.*;\nimport javax.swing.event.*;\nimport java.awt.*;\nimport java.awt.event.*;\nimport java.net.*;\nimport java.io.*;\n\n\/** Very simplistic &quot;Web browser&quot; using Swing. Supply a URL on\n *  the command line to see it initially and to set the\n *  destination of the &quot;home&quot; button.\n *\n  *\/\n\npublic class Browser extends JFrame implements HyperlinkListener, \n                                               ActionListener {\n  public static void main(String[] args) {\n    if (args.length == 0)\n      new Browser(&quot;http:\/\/www.corewebprogramming.com\/&quot;);\n    else\n      new Browser(args[0]);\n  }\n\n  private JIconButton homeButton;\n  private JTextField urlField;\n  private JEditorPane htmlPane;\n  private String initialURL;\n\n  public Browser(String initialURL) {\n    super(&quot;Simple Swing Browser&quot;);\n    this.initialURL = initialURL;\n    addWindowListener(new ExitListener());\n    WindowUtilities.setNativeLookAndFeel();\n\n    JPanel topPanel = new JPanel();\n    topPanel.setBackground(Color.lightGray);\n    homeButton = new JIconButton(&quot;home.gif&quot;);\n    homeButton.addActionListener(this);\n    JLabel urlLabel = new JLabel(&quot;URL:&quot;);\n    urlField = new JTextField(30);\n    urlField.setText(initialURL);\n    urlField.addActionListener(this);\n    topPanel.add(homeButton);\n    topPanel.add(urlLabel);\n    topPanel.add(urlField);\n    getContentPane().add(topPanel, BorderLayout.NORTH);\n\n    try {\n        htmlPane = new JEditorPane(initialURL);\n        htmlPane.setEditable(false);\n        htmlPane.addHyperlinkListener(this);\n        JScrollPane scrollPane = new JScrollPane(htmlPane);\n        getContentPane().add(scrollPane, BorderLayout.CENTER);\n    } catch(IOException ioe) {\n       warnUser(&quot;Can't build HTML pane for &quot; + initialURL \n                + &quot;: &quot; + ioe);\n    }\n\n    Dimension screenSize = getToolkit().getScreenSize();\n    int width = screenSize.width * 8 \/ 10;\n    int height = screenSize.height * 8 \/ 10;\n    setBounds(width\/8, height\/8, width, height);\n    setVisible(true);\n  }\n\n  public void actionPerformed(ActionEvent event) {\n    String url;\n    if (event.getSource() == urlField) {\n      url = urlField.getText();\n    } else { \/\/ Clicked &quot;home&quot; button instead of entering URL.\n      url = initialURL;\n    }\n    try {\n      htmlPane.setPage(new URL(url));\n      urlField.setText(url);\n    } catch(IOException ioe) {\n      warnUser(&quot;Can't follow link to &quot; + url + &quot;: &quot; + ioe);\n    }\n  }\n\n  public void hyperlinkUpdate(HyperlinkEvent event) {\n    if (event.getEventType() == \n        HyperlinkEvent.EventType.ACTIVATED) {\n      try {\n        htmlPane.setPage(event.getURL());\n        urlField.setText(event.getURL().toExternalForm());\n      } catch(IOException ioe) {\n        warnUser(&quot;Can't follow link to &quot; \n                + event.getURL().toExternalForm() + &quot;: &quot; + ioe);\n      }\n    }\n  }\n\n  private void warnUser(String message) {\n    JOptionPane.showMessageDialog(this, message, &quot;Error&quot;, \n                                  JOptionPane.ERROR_MESSAGE);\n  }\n}\n<\/pre>\n<p>Note: Brought from our old site: http:\/\/www.salearningschool.com\/example_codes\/ on Jan 2nd, 2017 From: http:\/\/sitestree.com\/?p=10315<br \/> Categories:Programming Code Examples, Java\/J2EE\/J2ME, Advanced Swing<br \/>Tags:Java\/J2EE\/J2MEAdvanced Swing<br \/> Post Data:2017-01-02 16:04:31<\/p>\n<p>\t\tShop Online: <a href='https:\/\/www.ShopForSoul.com\/' target='new' rel=\"noopener\">https:\/\/www.ShopForSoul.com\/<\/a><br \/>\n\t\t(Big Data, Cloud, Security, Machine Learning): Courses: <a href='http:\/\/Training.SitesTree.com' target='new' rel=\"noopener\"> http:\/\/Training.SitesTree.com<\/a><br \/>\n\t\tIn Bengali: <a href='http:\/\/Bangla.SaLearningSchool.com' target='new' rel=\"noopener\">http:\/\/Bangla.SaLearningSchool.com<\/a><br \/>\n\t\t<a href='http:\/\/SitesTree.com' target='new' rel=\"noopener\">http:\/\/SitesTree.com<\/a><br \/>\n\t\t8112223 Canada Inc.\/JustEtc: <a href='http:\/\/JustEtc.net' target='new' rel=\"noopener\">http:\/\/JustEtc.net (Software\/Web\/Mobile\/Big-Data\/Machine Learning) <\/a><br \/>\n\t\tShop Online: <a href='https:\/\/www.ShopForSoul.com'> https:\/\/www.ShopForSoul.com\/<\/a><br \/>\n\t\tMedium: <a href='https:\/\/medium.com\/@SayedAhmedCanada' target='new' rel=\"noopener\"> https:\/\/medium.com\/@SayedAhmedCanada <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Browser.java Implementation of a simple browser in Swing. The user can specify a URL to load into the browser (JEditorPane). By attaching an Hyperlink Listener, the editor pane is responsive to hyperlinks selected by the user. Uses the following class and image: import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; import java.net.*; import java.io.*; \/** &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"http:\/\/bangla.sitestree.com\/?p=27213\">Continue reading<\/a><\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1917],"tags":[],"class_list":["post-27213","post","type-post","status-publish","format-standard","hentry","category-fromsitestree-com","item-wrap"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":10277,"url":"http:\/\/bangla.sitestree.com\/?p=10277","url_meta":{"origin":27213,"position":0},"title":"Implementation of a simple browser in Swing (The user can specify a URL to load into the browser (JEditorPane))","author":"","date":"August 26, 2015","format":false,"excerpt":"Browser.java Implementation of a simple browser in Swing. The user can specify a URL to load into the browser (JEditorPane). By attaching an Hyperlink Listener, the editor pane is responsive to hyperlinks selected by the user. Uses the following class and image: import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*;\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10214,"url":"http:\/\/bangla.sitestree.com\/?p=10214","url_meta":{"origin":27213,"position":1},"title":"Basic Swing Details","author":"","date":"August 25, 2015","format":false,"excerpt":"WindowUtilities.java Utility class that simplifies creating a window and setting the look and feel. ExitListener.java A WindowListener with support to close the window. JAppletExample.java A simple applet (JApplet) created in Swing. Illustrates setting the look and feel, adding components to the content pane, and changing the layout to FlowLayout (default\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10166,"url":"http:\/\/bangla.sitestree.com\/?p=10166","url_meta":{"origin":27213,"position":2},"title":"ShowRequestHeaders.java Servlet that shows all request headers sent by browser in current request.","author":"","date":"August 17, 2015","format":false,"excerpt":"ShowRequestHeaders.java Servlet that shows all request headers sent by browser in current request. package cwp; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; \/** Shows all the request headers sent on this request. * * Taken from Core Web Programming Java 2 Edition * from Prentice Hall and Sun Microsystems\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10150,"url":"http:\/\/bangla.sitestree.com\/?p=10150","url_meta":{"origin":27213,"position":3},"title":"ServletTemplate.java Starting point for servlets.","author":"","date":"August 13, 2015","format":false,"excerpt":"ServletTemplate.java Starting point for servlets. import java.io.*; import javax.servlet.*; import javax.servlet.http.*; \/** Servlet template. \u00a0* \u00a0 \u00a0*\u00a0 Taken from Core Web Programming Java 2 Edition \u00a0*\u00a0 from Prentice Hall and Sun Microsystems Press, \u00a0*\u00a0 . \u00a0*\u00a0 May be freely used or adapted. \u00a0*\/ public class ServletTemplate extends HttpServlet { \u00a0\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26896,"url":"http:\/\/bangla.sitestree.com\/?p=26896","url_meta":{"origin":27213,"position":4},"title":"Basic Swing Details #Programming Code Examples #Java\/J2EE\/J2ME #Basic Swing","author":"Author-Check- Article-or-Video","date":"May 4, 2021","format":false,"excerpt":"* WindowUtilities.java Utility class that simplifies creating a window and setting the look and feel. * ExitListener.java A WindowListener with support to close the window. * JAppletExample.java A simple applet (JApplet) created in Swing. Illustrates setting the look and feel, adding components to the content pane, and changing the layout\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10202,"url":"http:\/\/bangla.sitestree.com\/?p=10202","url_meta":{"origin":27213,"position":5},"title":"EchoServer.java A simple HTTP server that creates a Web page showing all data sent from the client (browser), including all HTTP request headers sent form the client. Uses the following classes","author":"","date":"August 25, 2015","format":false,"excerpt":"EchoServer.java\u00a0 A simple HTTP server that creates a Web page showing all data sent from the client (browser), including all HTTP request headers sent form the client. Uses the following classes: \u00a0 import java.net.*; import java.io.*; import java.util.StringTokenizer; \/** A simple HTTP server that generates a Web page showing all\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/27213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=27213"}],"version-history":[{"count":0,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/27213\/revisions"}],"wp:attachment":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=27213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=27213"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=27213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}