{"id":2424,"date":"2014-01-25T22:30:12","date_gmt":"2014-01-25T21:30:12","guid":{"rendered":"https:\/\/blog.hani-ibrahim.de\/?p=2424"},"modified":"2020-10-07T18:30:51","modified_gmt":"2020-10-07T17:30:51","slug":"jdialog-in-netbeans","status":"publish","type":"post","link":"https:\/\/blog.hani-ibrahim.de\/en\/jdialog-in-netbeans.html","title":{"rendered":"Problem with JDialog in Netbeans?"},"content":{"rendered":"<nav class=\"tinytoc tiny_toc\">\n<ul>\n<li><a href=\"#h0\">Differences between JDialog and JFrame<\/a><\/li>\n<li><a href=\"#h1\">Create a JDialog<\/a><\/li>\n<li><a href=\"#h2\">Invoke JDialog from another class<\/a><\/li>\n<li><a href=\"#h3\">Edit template of JDialog Form<\/a><\/li>\n<li><a href=\"#h4\">Conclusion<\/a><\/li>\n<\/ul>\n<\/nav>\n\n\r\n<body><p><\/p>\n<p>Netbeans supports Java programmer a lot. Especially in designing graphical user interfaces (GUIs). <em>Matisse<\/em> \u2013\u00a0 the built-in GUI-Builder \u2013 is a great help in building GUIs exploratively.<\/p>\n<p>Unfortunately you run in errors if you use Netbeans\u2019 JDialog template in existing projects. But solving this issue is not a big deal.<\/p>\n<p>This how-to describes how to integrate a JDialog in an existing project and how you have to invoke it. Of course this tutorial is made for novices.<\/p>\n<p><!--more--><\/p>\n<h3 id=\"h0\">Differences between JDialog and JFrame<\/h3>\n<p>The main difference between both components is the optional property <em>modal <\/em>of JDialog. That means that you have to close the dialog before you can go ahead with the program.<\/p>\n<p>If a JDialog is not modal it looks alike a JFrame. But in Windows only a JDialog app does not appear in the taskbar.<\/p>\n<h3 id=\"h1\">Create a JDialog<\/h3>\n<p>I recommend to create a JDialog in a new class always. That increases the clarity of the code. But it is useful to put it in the same package of the invoking class if nothing speaks against it.<\/p>\n<p>Use Netbeans JDialog-Wizard for this task. Create the JDialog with \u201cFile | New\u2026\u201d. In \u201cCategories\u201d choose\u201d Swing GUI Forms\u201d and as a file type <em>JDialog Form.<\/em><\/p>\n<p><a href=\"https:\/\/blog.hani-ibrahim.de\/wp-content\/uploads\/nb-link02.png\" data-rel=\"lightbox-gallery-dU77DwSP\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.hani-ibrahim.de\/wp-content\/uploads\/nb-link02-300x206.png\" alt=\"Screenshot Netbeans\" width=\"300\" height=\"206\"><\/a><\/p>\n<p>Unfortunately Netbeans create the JDialog class with a main-method. In almost all cases this make no sense. Especially if you try to add a JDialog to an existing project where a main-method already exists generally.<\/p>\n<p>To solve this problem, delete the main method or comment it out.<\/p>\n<p><a href=\"https:\/\/blog.hani-ibrahim.de\/wp-content\/uploads\/nb-dialog01.png\" data-rel=\"lightbox-gallery-dU77DwSP\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.hani-ibrahim.de\/wp-content\/uploads\/nb-dialog01-300x223.png\" alt=\"Netbeans\" width=\"300\" height=\"223\"><\/a><\/p>\n<p>If the app contains the JDialog class only, you have to preserve the main method of course.<\/p>\n<p>Now you can design the dialog with Matisse as you like.<\/p>\n<h3 id=\"h2\">Invoke JDialog from another class<\/h3>\n<p>If your JDialog class is named \u201cNewJDialog\u201d you can call it as described below:<\/p>\n<pre>NewJDialog dialog = new NewJDialog(this, true);\r\ndialog.setLocationRelativeTo(this);\r\ndialog.setVisible(true);<\/pre>\n<p>You have to rename <em>NewJDialog\u00a0<\/em>to your JDialog class name. The assigned parameter <em>true<\/em> to the constructor makes the dialog modal. Refer information above.<\/p>\n<p>Invoking the method <em>setLocationRelative<\/em> with <em>this,<\/em> centered the dialog on the JFrame from which JDialog is invoked. This is useful on huge screens and not maximized windows because of less mouse distances. <em>null<\/em> instead of <em>this<\/em> centered the dialog on the screen.<\/p>\n<p><em>setVisible<\/em> is self-explanatory.<\/p>\n<h3 id=\"h3\">Edit template of JDialog Form<\/h3>\n<p>To avoid deleting the main method every time you create a new JDialog, altering or creating a new template solves the problem.<\/p>\n<p>Go to menu \u201cTools | Templates\u201d open the group \u201cSwing GUI Forms\u201d. Choose \u201cJDialog Form\u201d and click on the button \u201cDuplicate\u201d:<\/p>\n<p><a href=\"https:\/\/blog.hani-ibrahim.de\/wp-content\/uploads\/nb-dialog02.png\" data-rel=\"lightbox-gallery-dU77DwSP\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.hani-ibrahim.de\/wp-content\/uploads\/nb-dialog02-300x227.png\" alt=\"Netbeans - Tpl duplicate\" width=\"300\" height=\"227\"><\/a><\/p>\n<p>Give the new template a new template and file name:<\/p>\n<p><a href=\"https:\/\/blog.hani-ibrahim.de\/wp-content\/uploads\/nb-dialog03.png\" data-rel=\"lightbox-gallery-dU77DwSP\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.hani-ibrahim.de\/wp-content\/uploads\/nb-dialog03-300x161.png\" alt=\"Netbeans - Tpl new name\" width=\"300\" height=\"161\"><\/a><\/p>\n<p>Finally open the new template in the editor \u2026<\/p>\n<p><a href=\"https:\/\/blog.hani-ibrahim.de\/wp-content\/uploads\/nb-dialog04.png\" data-rel=\"lightbox-gallery-dU77DwSP\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2470\" src=\"https:\/\/blog.hani-ibrahim.de\/wp-content\/uploads\/nb-dialog04-300x227.png\" alt=\"Netbeans - Tpl open editor\" width=\"300\" height=\"227\" srcset=\"https:\/\/blog.hani-ibrahim.de\/wp-content\/uploads\/nb-dialog04-300x227.png 300w, https:\/\/blog.hani-ibrahim.de\/wp-content\/uploads\/nb-dialog04.png 498w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\"><\/a><\/p>\n<p>\u2026 delete the main method as described above and save it.<\/p>\n<p>Now the new template is available at \u201cFile | New File \u2026 | Swing GUI Forms\u201d.<\/p>\n<h3 id=\"h4\">Conclusion<\/h3>\n<p>At existing projects Netbeans\u2019 well-meant integrated main method in new JDialog classes is more an annoyance than a help. But it easy to delete. I do not know why Netbeans do not offer the opportunity to omit the main method creation in the JDialog wizard.<\/p>\n<p>Invoking JDialogs created by Netbeans happens as usual through the constructor.<\/p>\n<p><\/p><\/body>","protected":false},"excerpt":{"rendered":"<div class=\"shariff shariff-align-flex-start shariff-widget-align-flex-start\" data-services=\"facebook\" data-url=\"https%3A%2F%2Fblog.hani-ibrahim.de%2Fen%2Fjdialog-in-netbeans.html\" data-timestamp=\"1602095451\" data-backendurl=\"https:\/\/blog.hani-ibrahim.de\/en\/wp-json\/shariff\/v1\/share_counts?\"><ul class=\"shariff-buttons theme-round orientation-horizontal buttonsize-small\"><li class=\"shariff-button facebook shariff-nocustomcolor\" style=\"background-color:#4273c8;border-radius:50%\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fblog.hani-ibrahim.de%2Fen%2Fjdialog-in-netbeans.html\" title=\"Share on Facebook\" aria-label=\"Share on Facebook\" role=\"button\" rel=\"nofollow\" class=\"shariff-link\" style=\";border-radius:50%; background-color:#3b5998; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 18 32\"><path fill=\"#3b5998\" d=\"M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z\"\/><\/svg><\/span><span data-service=\"facebook\" style=\"color:#3b5998\" class=\"shariff-count shariff-hidezero\"><\/span>&nbsp;<\/a><\/li><li class=\"shariff-button twitter shariff-nocustomcolor\" style=\"background-color:#595959;border-radius:50%\"><a href=\"https:\/\/twitter.com\/share?url=https%3A%2F%2Fblog.hani-ibrahim.de%2Fen%2Fjdialog-in-netbeans.html&text=Problem%20with%20JDialog%20in%20Netbeans%3F\" title=\"Share on X\" aria-label=\"Share on X\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\";border-radius:50%; background-color:#000; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path fill=\"#000\" d=\"M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button pocket shariff-nocustomcolor\" style=\"background-color:#444;border-radius:50%\"><a href=\"https:\/\/getpocket.com\/save?url=https%3A%2F%2Fblog.hani-ibrahim.de%2Fen%2Fjdialog-in-netbeans.html&title=Problem%20with%20JDialog%20in%20Netbeans%3F\" title=\"Save to Pocket\" aria-label=\"Save to Pocket\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\";border-radius:50%; background-color:#ff0000; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 27 28\"><path fill=\"#ff0000\" d=\"M24.5 2q1 0 1.7 0.7t0.7 1.7v8.1q0 2.8-1.1 5.3t-2.9 4.3-4.3 2.9-5.2 1.1q-2.7 0-5.2-1.1t-4.3-2.9-2.9-4.3-1.1-5.2v-8.1q0-1 0.7-1.7t1.7-0.7h22zM13.5 18.6q0.7 0 1.3-0.5l6.3-6.1q0.6-0.5 0.6-1.3 0-0.8-0.5-1.3t-1.3-0.5q-0.7 0-1.3 0.5l-5 4.8-5-4.8q-0.5-0.5-1.3-0.5-0.8 0-1.3 0.5t-0.5 1.3q0 0.8 0.6 1.3l6.3 6.1q0.5 0.5 1.3 0.5z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button rss shariff-nocustomcolor\" style=\"background-color:#ff8c00;border-radius:50%\"><a href=\"https:\/\/blog.hani-ibrahim.de\/en\/feed\/rss\" title=\"RSS feed\" aria-label=\"RSS feed\" role=\"button\" class=\"shariff-link\" style=\";border-radius:50%; background-color:#fe9312; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 32 32\"><path fill=\"#fe9312\" d=\"M4.3 23.5c-2.3 0-4.3 1.9-4.3 4.3 0 2.3 1.9 4.2 4.3 4.2 2.4 0 4.3-1.9 4.3-4.2 0-2.3-1.9-4.3-4.3-4.3zM0 10.9v6.1c4 0 7.7 1.6 10.6 4.4 2.8 2.8 4.4 6.6 4.4 10.6h6.2c0-11.7-9.5-21.1-21.1-21.1zM0 0v6.1c14.2 0 25.8 11.6 25.8 25.9h6.2c0-17.6-14.4-32-32-32z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button mailto shariff-nocustomcolor\" style=\"background-color:#a8a8a8;border-radius:50%\"><a href=\"mailto:?body=https%3A%2F%2Fblog.hani-ibrahim.de%2Fen%2Fjdialog-in-netbeans.html&subject=Problem%20with%20JDialog%20in%20Netbeans%3F\" title=\"Send by email\" aria-label=\"Send by email\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\";border-radius:50%; background-color:#999; color:#fff\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 32 32\"><path fill=\"#999\" d=\"M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button whatsapp shariff-nocustomcolor\" style=\"background-color:#5cbe4a;border-radius:50%\"><a href=\"https:\/\/api.whatsapp.com\/send?text=https%3A%2F%2Fblog.hani-ibrahim.de%2Fen%2Fjdialog-in-netbeans.html%20Problem%20with%20JDialog%20in%20Netbeans%3F\" title=\"Share on Whatsapp\" aria-label=\"Share on Whatsapp\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\";border-radius:50%; background-color:#34af23; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 32 32\"><path fill=\"#34af23\" d=\"M17.6 17.4q0.2 0 1.7 0.8t1.6 0.9q0 0.1 0 0.3 0 0.6-0.3 1.4-0.3 0.7-1.3 1.2t-1.8 0.5q-1 0-3.4-1.1-1.7-0.8-3-2.1t-2.6-3.3q-1.3-1.9-1.3-3.5v-0.1q0.1-1.6 1.3-2.8 0.4-0.4 0.9-0.4 0.1 0 0.3 0t0.3 0q0.3 0 0.5 0.1t0.3 0.5q0.1 0.4 0.6 1.6t0.4 1.3q0 0.4-0.6 1t-0.6 0.8q0 0.1 0.1 0.3 0.6 1.3 1.8 2.4 1 0.9 2.7 1.8 0.2 0.1 0.4 0.1 0.3 0 1-0.9t0.9-0.9zM14 26.9q2.3 0 4.3-0.9t3.6-2.4 2.4-3.6 0.9-4.3-0.9-4.3-2.4-3.6-3.6-2.4-4.3-0.9-4.3 0.9-3.6 2.4-2.4 3.6-0.9 4.3q0 3.6 2.1 6.6l-1.4 4.2 4.3-1.4q2.8 1.9 6.2 1.9zM14 2.2q2.7 0 5.2 1.1t4.3 2.9 2.9 4.3 1.1 5.2-1.1 5.2-2.9 4.3-4.3 2.9-5.2 1.1q-3.5 0-6.5-1.7l-7.4 2.4 2.4-7.2q-1.9-3.2-1.9-6.9 0-2.7 1.1-5.2t2.9-4.3 4.3-2.9 5.2-1.1z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button info shariff-nocustomcolor\" style=\"background-color:#eee;border-radius:50%\"><a href=\"http:\/\/ct.de\/-2467514\" title=\"More information\" aria-label=\"More information\" role=\"button\" rel=\"noopener \" class=\"shariff-link\" style=\";border-radius:50%; background-color:#fff; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 11 32\"><path fill=\"#999\" d=\"M11.4 24v2.3q0 0.5-0.3 0.8t-0.8 0.4h-9.1q-0.5 0-0.8-0.4t-0.4-0.8v-2.3q0-0.5 0.4-0.8t0.8-0.4h1.1v-6.8h-1.1q-0.5 0-0.8-0.4t-0.4-0.8v-2.3q0-0.5 0.4-0.8t0.8-0.4h6.8q0.5 0 0.8 0.4t0.4 0.8v10.3h1.1q0.5 0 0.8 0.4t0.3 0.8zM9.2 3.4v3.4q0 0.5-0.4 0.8t-0.8 0.4h-4.6q-0.4 0-0.8-0.4t-0.4-0.8v-3.4q0-0.4 0.4-0.8t0.8-0.4h4.6q0.5 0 0.8 0.4t0.4 0.8z\"\/><\/svg><\/span><\/a><\/li><\/ul><\/div><p>Netbeans supports Java programmer a lot. Especially in designing graphical user interfaces (GUIs). Matisse \u2013\u00a0 the built-in GUI-Builder \u2013 is a great help in building [&#8230;]<\/p>\n","protected":false},"author":2,"featured_media":3501,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[24,25,45,63,67],"tags":[70,121,68,69],"class_list":["post-2424","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-german","category-english","category-how-tos","category-java","category-programming","tag-gui","tag-java","tag-netbeans","tag-swing"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/blog.hani-ibrahim.de\/en\/wp-json\/wp\/v2\/posts\/2424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.hani-ibrahim.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.hani-ibrahim.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.hani-ibrahim.de\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.hani-ibrahim.de\/en\/wp-json\/wp\/v2\/comments?post=2424"}],"version-history":[{"count":25,"href":"https:\/\/blog.hani-ibrahim.de\/en\/wp-json\/wp\/v2\/posts\/2424\/revisions"}],"predecessor-version":[{"id":2455,"href":"https:\/\/blog.hani-ibrahim.de\/en\/wp-json\/wp\/v2\/posts\/2424\/revisions\/2455"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.hani-ibrahim.de\/en\/wp-json\/wp\/v2\/media\/3501"}],"wp:attachment":[{"href":"https:\/\/blog.hani-ibrahim.de\/en\/wp-json\/wp\/v2\/media?parent=2424"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.hani-ibrahim.de\/en\/wp-json\/wp\/v2\/categories?post=2424"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.hani-ibrahim.de\/en\/wp-json\/wp\/v2\/tags?post=2424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}