{"id":821,"date":"2014-10-16T10:27:32","date_gmt":"2014-10-16T07:27:32","guid":{"rendered":"http:\/\/www.coding-dude.com\/wp\/?p=821"},"modified":"2018-07-06T17:15:15","modified_gmt":"2018-07-06T14:15:15","slug":"modal-progress-bar-dialog-java-swing","status":"publish","type":"post","link":"https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/","title":{"rendered":"Modal Progress Bar Dialog with Java Swing"},"content":{"rendered":"<div class=\"9db0862b9cf2e44f8d962262c5a80491\" data-index=\"1\" style=\"float: none; margin:10px 0 10px 0; text-align:center;\">\n<script type=\"text\/javascript\"><!--\r\ngoogle_ad_client = \"ca-pub-3421619882899259\";\r\n\/* Coding Dude Medium Banner *\/\r\ngoogle_ad_slot = \"2969896483\";\r\ngoogle_ad_width = 468;\r\ngoogle_ad_height = 60;\r\n\/\/-->\r\n<\/script>\r\n<script type=\"text\/javascript\"\r\nsrc=\"\/\/pagead2.googlesyndication.com\/pagead\/show_ads.js\">\r\n<\/script>\n<\/div>\n<blockquote><p>In this post I will show you how you can make a modal progress bar dialog in a Java Swing application. Though I am a Java programmer I am mainly involved in web development so my experience with Swing is rather limited.<\/p><\/blockquote>\n<h2>The problem<\/h2>\n<p>So you have an application made in Java with Swing and in it you have for example a button that the user can push to start processing something. Main challenge for me coming from web development was that with Swing you have to be aware of the UI thread.<\/p>\n<p>That means that\u00a0if you start processing something and that takes a lot of time that will also block the UI thread and the application will look like it has frozen. Not too nice for user experience. What you can do is do all processing on a separate thread and to further improve user experience you can add a progress bar window indicating that the application is working on something. What would be even nicer in some cases (was also my case) is if you could somehow prevent the user from modifying anything in the application as that might influence the result of the processing in unwanted ways.<\/p>\n<h2>The solution<\/h2>\n<p>The solution is to create a modal progress bar dialog and display it while the application is processing, prevent the user from closing this dialog and close it once the processing finishes. Easier said than done (if you don&#8217;t know how things work in Swing). If you open up a modal dialog\u00a0in the application,\u00a0everything stops until the \u00a0dialog is closed somehow.<\/p>\n<p>Consider the following code:<\/p>\n<pre class=\"lang-java\">...\r\nJDialog dlgProgress = new JDialog(null, \"Please wait...\", <strong>true<\/strong>);\/\/true means that the dialog created is modal\r\n...\r\n\/*code creating the contents of the progress dialog*\/\r\n...\r\ndlgProgress.setVisible(true);\r\nlongProcessingTask(); \/\/ this will only be executed after the user closes the dialog\r\n...\r\n<\/pre>\n<p>As the comment says, the\u00a0<em>longProcessingTask()\u00a0<\/em>method will only be executed after the dialog is closed because <em>dlgProgress<\/em> is a modal dialog and \u00a0<em>dlgProgress.setVisible(true)\u00a0<\/em>will block the execution\u00a0flow. What we need is a way to start processing on a separate thread, and while that is happening\u00a0display the progress bar dialog. Also, when the processing is done we should\u00a0close the progress bar dialog.<\/p>\n<p>To start processing on a separate thread Java has all sort of options, but as we are in Swing let&#8217;s use something that Swing provides: <em><strong>SwingWorker.<\/strong><\/em><\/p>\n<p>Here&#8217;s the resulting code:<\/p>\n<pre>...\r\nJDialog dlgProgress = new JDialog(null, \"Please wait...\", <strong>true<\/strong>);\/\/true means that the dialog created is modal\r\nJLabel lblStatus = new JLabel(\"Working...\"); \/\/ this is just a label in which you can indicate the state of the processing\r\n\r\nJProgressBar pbProgress = new JProgressBar(0, 100);\r\npbProgress.setIndeterminate(true); \/\/we'll use an indeterminate progress bar\r\n\r\ndlgProgress.add(BorderLayout.NORTH, lblStatus);\r\ndlgProgress.add(BorderLayout.CENTER, dpb);\r\ndlgProgress.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); \/\/ prevent the user from closing the dialog\r\ndlgProgress.setSize(300, 90);\r\n\r\nSwingWorker&lt;Void, Void&gt; sw = new SwingWorker&lt;Void, Void&gt;() {\r\n @Override\r\n protected Void doInBackground() throws Exception {\r\n longProcessingTask();\r\n return null;\r\n }\r\n\r\n @Override\r\n protected void done() {\r\n dlgProgress.dispose();\/\/close the modal dialog\r\n }\r\n};\r\n\r\nsw.execute(); \/\/ this will start the processing on a separate thread\r\ndlgProgress.setVisible(true); \/\/this will block user input as long as the processing task is working\r\n...\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Hope you can put this to good use!<\/p>\n<!--CusAds0-->\n<div style=\"font-size: 0px; height: 0px; line-height: 0px; margin: 0; padding: 0; clear: both;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>In this post I will show you how you can make a modal progress bar dialog in a Java Swing application. Though I am a Java programmer I am mainly involved in web development so my experience with Swing is rather limited. The problem So you have an application made in Java with Swing and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2592,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[135],"tags":[137],"class_list":["post-821","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","tag-tips-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Modal Progress Bar Dialog with Java Swing - Coding Dude<\/title>\n<meta name=\"description\" content=\"How to create a modal progress bar dialog in Java Swing to display while processing, prevent the user from closing it and close it when processing is done\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Modal Progress Bar Dialog with Java Swing - Coding Dude\" \/>\n<meta property=\"og:description\" content=\"How to create a modal progress bar dialog in Java Swing to display while processing, prevent the user from closing it and close it when processing is done\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/\" \/>\n<meta property=\"og:site_name\" content=\"Coding Dude\" \/>\n<meta property=\"article:published_time\" content=\"2014-10-16T07:27:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-07-06T14:15:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.coding-dude.com\/wp\/wp-content\/uploads\/2014\/10\/java-progress-bar.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"315\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"John Negoita\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@codingdudecom\" \/>\n<meta name=\"twitter:site\" content=\"@codingdudecom\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"John Negoita\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/java\\\/modal-progress-bar-dialog-java-swing\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/java\\\/modal-progress-bar-dialog-java-swing\\\/\"},\"author\":{\"name\":\"John Negoita\",\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/#\\\/schema\\\/person\\\/29b7100b9ec7bb332359bd9fcba98370\"},\"headline\":\"Modal Progress Bar Dialog with Java Swing\",\"datePublished\":\"2014-10-16T07:27:32+00:00\",\"dateModified\":\"2018-07-06T14:15:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/java\\\/modal-progress-bar-dialog-java-swing\\\/\"},\"wordCount\":383,\"commentCount\":6,\"publisher\":{\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/java\\\/modal-progress-bar-dialog-java-swing\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/wp-content\\\/uploads\\\/2014\\\/10\\\/java-progress-bar.jpg\",\"keywords\":[\"tips\"],\"articleSection\":[\"Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/java\\\/modal-progress-bar-dialog-java-swing\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/java\\\/modal-progress-bar-dialog-java-swing\\\/\",\"url\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/java\\\/modal-progress-bar-dialog-java-swing\\\/\",\"name\":\"Modal Progress Bar Dialog with Java Swing - Coding Dude\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/java\\\/modal-progress-bar-dialog-java-swing\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/java\\\/modal-progress-bar-dialog-java-swing\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/wp-content\\\/uploads\\\/2014\\\/10\\\/java-progress-bar.jpg\",\"datePublished\":\"2014-10-16T07:27:32+00:00\",\"dateModified\":\"2018-07-06T14:15:15+00:00\",\"description\":\"How to create a modal progress bar dialog in Java Swing to display while processing, prevent the user from closing it and close it when processing is done\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/java\\\/modal-progress-bar-dialog-java-swing\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/java\\\/modal-progress-bar-dialog-java-swing\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/java\\\/modal-progress-bar-dialog-java-swing\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/wp-content\\\/uploads\\\/2014\\\/10\\\/java-progress-bar.jpg\",\"contentUrl\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/wp-content\\\/uploads\\\/2014\\\/10\\\/java-progress-bar.jpg\",\"width\":640,\"height\":315,\"caption\":\"java progress bar\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/java\\\/modal-progress-bar-dialog-java-swing\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Modal Progress Bar Dialog with Java Swing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/#website\",\"url\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/\",\"name\":\"Coding Dude\",\"description\":\"Coding tutorials, tips and tricks\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/#organization\",\"name\":\"Coding Dude\",\"url\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/wp-content\\\/uploads\\\/2018\\\/05\\\/codingdude-logo-wide.jpg\",\"contentUrl\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/wp-content\\\/uploads\\\/2018\\\/05\\\/codingdude-logo-wide.jpg\",\"width\":226,\"height\":60,\"caption\":\"Coding Dude\"},\"image\":{\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/codingdudecom\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.coding-dude.com\\\/wp\\\/#\\\/schema\\\/person\\\/29b7100b9ec7bb332359bd9fcba98370\",\"name\":\"John Negoita\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d51d5d54d4c51f0a7bfe39333bd98cfc5245ab49433be692fce26b741c08181e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d51d5d54d4c51f0a7bfe39333bd98cfc5245ab49433be692fce26b741c08181e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d51d5d54d4c51f0a7bfe39333bd98cfc5245ab49433be692fce26b741c08181e?s=96&d=mm&r=g\",\"caption\":\"John Negoita\"},\"description\":\"I'm a Java programmer, been into programming since 1999 and having tons of fun with it.\",\"sameAs\":[\"http:\\\/\\\/www.coding-dude.com\",\"https:\\\/\\\/x.com\\\/codingdudecom\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Modal Progress Bar Dialog with Java Swing - Coding Dude","description":"How to create a modal progress bar dialog in Java Swing to display while processing, prevent the user from closing it and close it when processing is done","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/","og_locale":"en_US","og_type":"article","og_title":"Modal Progress Bar Dialog with Java Swing - Coding Dude","og_description":"How to create a modal progress bar dialog in Java Swing to display while processing, prevent the user from closing it and close it when processing is done","og_url":"https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/","og_site_name":"Coding Dude","article_published_time":"2014-10-16T07:27:32+00:00","article_modified_time":"2018-07-06T14:15:15+00:00","og_image":[{"width":640,"height":315,"url":"https:\/\/www.coding-dude.com\/wp\/wp-content\/uploads\/2014\/10\/java-progress-bar.jpg","type":"image\/jpeg"}],"author":"John Negoita","twitter_card":"summary_large_image","twitter_creator":"@codingdudecom","twitter_site":"@codingdudecom","twitter_misc":{"Written by":"John Negoita","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/#article","isPartOf":{"@id":"https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/"},"author":{"name":"John Negoita","@id":"https:\/\/www.coding-dude.com\/wp\/#\/schema\/person\/29b7100b9ec7bb332359bd9fcba98370"},"headline":"Modal Progress Bar Dialog with Java Swing","datePublished":"2014-10-16T07:27:32+00:00","dateModified":"2018-07-06T14:15:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/"},"wordCount":383,"commentCount":6,"publisher":{"@id":"https:\/\/www.coding-dude.com\/wp\/#organization"},"image":{"@id":"https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/#primaryimage"},"thumbnailUrl":"https:\/\/www.coding-dude.com\/wp\/wp-content\/uploads\/2014\/10\/java-progress-bar.jpg","keywords":["tips"],"articleSection":["Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/","url":"https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/","name":"Modal Progress Bar Dialog with Java Swing - Coding Dude","isPartOf":{"@id":"https:\/\/www.coding-dude.com\/wp\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/#primaryimage"},"image":{"@id":"https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/#primaryimage"},"thumbnailUrl":"https:\/\/www.coding-dude.com\/wp\/wp-content\/uploads\/2014\/10\/java-progress-bar.jpg","datePublished":"2014-10-16T07:27:32+00:00","dateModified":"2018-07-06T14:15:15+00:00","description":"How to create a modal progress bar dialog in Java Swing to display while processing, prevent the user from closing it and close it when processing is done","breadcrumb":{"@id":"https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/#primaryimage","url":"https:\/\/www.coding-dude.com\/wp\/wp-content\/uploads\/2014\/10\/java-progress-bar.jpg","contentUrl":"https:\/\/www.coding-dude.com\/wp\/wp-content\/uploads\/2014\/10\/java-progress-bar.jpg","width":640,"height":315,"caption":"java progress bar"},{"@type":"BreadcrumbList","@id":"https:\/\/www.coding-dude.com\/wp\/java\/modal-progress-bar-dialog-java-swing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.coding-dude.com\/wp\/"},{"@type":"ListItem","position":2,"name":"Modal Progress Bar Dialog with Java Swing"}]},{"@type":"WebSite","@id":"https:\/\/www.coding-dude.com\/wp\/#website","url":"https:\/\/www.coding-dude.com\/wp\/","name":"Coding Dude","description":"Coding tutorials, tips and tricks","publisher":{"@id":"https:\/\/www.coding-dude.com\/wp\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.coding-dude.com\/wp\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.coding-dude.com\/wp\/#organization","name":"Coding Dude","url":"https:\/\/www.coding-dude.com\/wp\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.coding-dude.com\/wp\/#\/schema\/logo\/image\/","url":"https:\/\/www.coding-dude.com\/wp\/wp-content\/uploads\/2018\/05\/codingdude-logo-wide.jpg","contentUrl":"https:\/\/www.coding-dude.com\/wp\/wp-content\/uploads\/2018\/05\/codingdude-logo-wide.jpg","width":226,"height":60,"caption":"Coding Dude"},"image":{"@id":"https:\/\/www.coding-dude.com\/wp\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/codingdudecom"]},{"@type":"Person","@id":"https:\/\/www.coding-dude.com\/wp\/#\/schema\/person\/29b7100b9ec7bb332359bd9fcba98370","name":"John Negoita","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d51d5d54d4c51f0a7bfe39333bd98cfc5245ab49433be692fce26b741c08181e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d51d5d54d4c51f0a7bfe39333bd98cfc5245ab49433be692fce26b741c08181e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d51d5d54d4c51f0a7bfe39333bd98cfc5245ab49433be692fce26b741c08181e?s=96&d=mm&r=g","caption":"John Negoita"},"description":"I'm a Java programmer, been into programming since 1999 and having tons of fun with it.","sameAs":["http:\/\/www.coding-dude.com","https:\/\/x.com\/codingdudecom"]}]}},"jetpack_featured_media_url":"https:\/\/www.coding-dude.com\/wp\/wp-content\/uploads\/2014\/10\/java-progress-bar.jpg","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.coding-dude.com\/wp\/wp-json\/wp\/v2\/posts\/821","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.coding-dude.com\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.coding-dude.com\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.coding-dude.com\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.coding-dude.com\/wp\/wp-json\/wp\/v2\/comments?post=821"}],"version-history":[{"count":7,"href":"https:\/\/www.coding-dude.com\/wp\/wp-json\/wp\/v2\/posts\/821\/revisions"}],"predecessor-version":[{"id":828,"href":"https:\/\/www.coding-dude.com\/wp\/wp-json\/wp\/v2\/posts\/821\/revisions\/828"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.coding-dude.com\/wp\/wp-json\/wp\/v2\/media\/2592"}],"wp:attachment":[{"href":"https:\/\/www.coding-dude.com\/wp\/wp-json\/wp\/v2\/media?parent=821"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.coding-dude.com\/wp\/wp-json\/wp\/v2\/categories?post=821"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.coding-dude.com\/wp\/wp-json\/wp\/v2\/tags?post=821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}