{"id":10267,"date":"2015-08-26T00:00:09","date_gmt":"2015-08-26T04:00:09","guid":{"rendered":"http:\/\/bangla.salearningschool.com\/?p=10267"},"modified":"2015-08-24T08:46:32","modified_gmt":"2015-08-24T12:46:32","slug":"jtree-examples","status":"publish","type":"post","link":"http:\/\/bangla.sitestree.com\/?p=10267","title":{"rendered":"JTree Examples"},"content":{"rendered":"<p style=\"text-align: justify;\">SimpleTree.java Basic tree built out of DefaultMutableTreeNodes. A DefualtMutableTreeNode is a starting point for a root node, in which children nodes can be added.<\/p>\n<pre>import java.awt.*;\r\nimport javax.swing.*;\r\nimport javax.swing.tree.*;\r\n\r\n\/** Example tree built out of DefaultMutableTreeNodes. \r\n\u00a0*\r\n\u00a0*\/\r\n\r\npublic class SimpleTree extends JFrame {\r\n\u00a0 public static void main(String[] args) {\r\n\u00a0\u00a0\u00a0 new SimpleTree();\r\n\u00a0 }\r\n\u00a0\r\n\u00a0 public SimpleTree() {\r\n\u00a0\u00a0\u00a0 super(\"Creating a Simple JTree\");\r\n\u00a0\u00a0\u00a0 WindowUtilities.setNativeLookAndFeel();\r\n\u00a0\u00a0\u00a0 addWindowListener(new ExitListener());\r\n\u00a0\u00a0\u00a0 Container content = getContentPane();\r\n\u00a0\u00a0\u00a0 Object[] hierarchy =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 { \"javax.swing\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"javax.swing.border\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"javax.swing.colorchooser\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"javax.swing.event\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"javax.swing.filechooser\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 new Object[] { \"javax.swing.plaf\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"javax.swing.plaf.basic\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"javax.swing.plaf.metal\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"javax.swing.plaf.multi\" },\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"javax.swing.table\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 new Object[] { \"javax.swing.text\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 new Object[] { \"javax.swing.text.html\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"javax.swing.text.html.parser\" },\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"javax.swing.text.rtf\" },\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"javax.swing.tree\",\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"javax.swing.undo\" };\r\n\u00a0\u00a0\u00a0 DefaultMutableTreeNode root = processHierarchy(hierarchy);\r\n\u00a0\u00a0\u00a0 JTree tree = new JTree(root);\r\n\u00a0\u00a0\u00a0 content.add(new JScrollPane(tree), BorderLayout.CENTER);\r\n\u00a0\u00a0\u00a0 setSize(275, 300);\r\n\u00a0\u00a0\u00a0 setVisible(true);\r\n\u00a0 }\r\n\r\n\u00a0 \/** Small routine that will make a node out of the first entry\r\n\u00a0\u00a0 *\u00a0 in the array, then make nodes out of subsequent entries\r\n\u00a0\u00a0 *\u00a0 and make them child nodes of the first one. The process \r\n\u00a0\u00a0 *\u00a0 is repeated recursively for entries that are arrays.\r\n\u00a0\u00a0 *\/\r\n\r\n\u00a0 private DefaultMutableTreeNode processHierarchy(\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Object[] hierarchy) {\r\n\u00a0\u00a0\u00a0 DefaultMutableTreeNode node =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 new DefaultMutableTreeNode(hierarchy[0]);\r\n\u00a0\u00a0\u00a0 DefaultMutableTreeNode child;\r\n\u00a0\u00a0\u00a0 for(int i=1; i 0) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 try {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 n = Integer.parseInt(args[0]);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 } catch(NumberFormatException nfe) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.println(\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Can't parse number; using default of \" + n);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 new DynamicTree(n);\r\n\u00a0 }\r\n\u00a0\r\n\u00a0 public DynamicTree(int n) {\r\n\u00a0\u00a0\u00a0 super(\"Creating a Dynamic JTree\");\r\n\u00a0\u00a0\u00a0 WindowUtilities.setNativeLookAndFeel();\r\n\u00a0\u00a0\u00a0 addWindowListener(new ExitListener());\r\n\u00a0\u00a0\u00a0 Container content = getContentPane();\r\n\u00a0\u00a0\u00a0 JTree tree = new JTree(new OutlineNode(1, n));\r\n\u00a0\u00a0\u00a0 content.add(new JScrollPane(tree), BorderLayout.CENTER);\r\n\u00a0\u00a0\u00a0 setSize(300, 475);\r\n\u00a0\u00a0\u00a0 setVisible(true);\r\n\u00a0 }\r\n}\r\n\r\n\r\n\u00a0\u00a0\u00a0 * OutlineNode.java A simple tree node that builds its children.\r\nimport java.awt.*;\r\nimport javax.swing.*;\r\nimport javax.swing.tree.*;\r\n\r\n\/** Simple TreeNode that builds children on the fly.\r\n\u00a0*\u00a0 The key idea is that getChildCount is always called before\r\n\u00a0*\u00a0 any actual children are requested. That way, getChildCount \r\n\u00a0*\u00a0 builds the children if they don't already exist.\r\n\u00a0* \u00a0\r\n\r\n\r\n\u00a0*\u00a0 In this case, it just builds an \"outline\" tree. I.e.,\r\n\u00a0*\u00a0 if the root is current node is \"x\", the children are\r\n\u00a0*\u00a0 \"x.0\", \"x.1\", \"x.2\", and \"x.3\".\r\n\u00a0* \r\n\r\n\r\n\u00a0*\r\n\u00a0*\/\r\n\r\npublic class OutlineNode extends DefaultMutableTreeNode {\r\n\u00a0 private boolean areChildrenDefined = false;\r\n\u00a0 private int outlineNum;\r\n\u00a0 private int numChildren;\r\n\r\n\u00a0 public OutlineNode(int outlineNum, int numChildren) {\r\n\u00a0\u00a0\u00a0 this.outlineNum = outlineNum;\r\n\u00a0\u00a0\u00a0 this.numChildren = numChildren;\r\n\u00a0 }\r\n\u00a0 \r\n\u00a0 public boolean isLeaf() {\r\n\u00a0\u00a0\u00a0 return(false);\r\n\u00a0 }\r\n\r\n\u00a0 public int getChildCount() {\r\n\u00a0\u00a0\u00a0 if (!areChildrenDefined) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 defineChildNodes();\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 return(super.getChildCount());\r\n\u00a0 }\r\n\r\n\u00a0 private void defineChildNodes() {\r\n\u00a0\u00a0\u00a0 \/\/ You must set the flag before defining children if you\r\n\u00a0\u00a0\u00a0 \/\/ use \"add\" for the new children. Otherwise, you get an \r\n\u00a0\u00a0\u00a0 \/\/ infinite recursive loop since add results in a call \r\n\u00a0\u00a0\u00a0 \/\/ to getChildCount. However, you could use \"insert\" in such \r\n\u00a0\u00a0\u00a0 \/\/ a case.\r\n\u00a0\u00a0\u00a0 areChildrenDefined = true;\r\n\u00a0\u00a0\u00a0 for(int i=0; i\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>SimpleTree.java Basic tree built out of DefaultMutableTreeNodes. A DefualtMutableTreeNode is a starting point for a root node, in which children nodes can be added. import java.awt.*; import javax.swing.*; import javax.swing.tree.*; \/** Example tree built out of DefaultMutableTreeNodes. \u00a0* \u00a0*\/ public class SimpleTree extends JFrame { \u00a0 public static void main(String[] args) { \u00a0\u00a0\u00a0 new SimpleTree(); &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"http:\/\/bangla.sitestree.com\/?p=10267\">Continue reading<\/a><\/p>\n","protected":false},"author":130,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1417,1424],"tags":[706,308,285],"class_list":["post-10267","post","type-post","status-publish","format-standard","hentry","category-code-programming-samples--","category-javaj2eej2me","tag-code","tag-java","tag-285","item-wrap"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":27190,"url":"http:\/\/bangla.sitestree.com\/?p=27190","url_meta":{"origin":10267,"position":0},"title":"JTree Examples #Programming Code Examples #Java\/J2EE\/J2ME #Advanced Swing","author":"Author-Check- Article-or-Video","date":"May 13, 2021","format":false,"excerpt":"SimpleTree.java Basic tree built out of DefaultMutableTreeNodes. A DefualtMutableTreeNode is a starting point for a root node, in which children nodes can be added. import java.awt.*; import javax.swing.*; import javax.swing.tree.*; \/** Example tree built out of DefaultMutableTreeNodes. * *\/ public class SimpleTree extends JFrame { public static void main(String[] args)\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":10271,"url":"http:\/\/bangla.sitestree.com\/?p=10271","url_meta":{"origin":10267,"position":1},"title":"Printing in Java 2","author":"","date":"August 26, 2015","format":false,"excerpt":"\u00a0\u00a0 * \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 o PrintExample.java Demonstrates printing a Graphics2D object. import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.awt.print.*; \/** An example of a printable window in Java 1.2. The key point \u00a0*\u00a0 here is that any component is printable in Java 1.2. \u00a0*\u00a0 However, you have to be careful to\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":27194,"url":"http:\/\/bangla.sitestree.com\/?p=27194","url_meta":{"origin":10267,"position":2},"title":"Printing in Java 2 #Programming Code Examples #Java\/J2EE\/J2ME #Advanced Swing","author":"Author-Check- Article-or-Video","date":"May 13, 2021","format":false,"excerpt":"* o PrintExample.java Demonstrates printing a Graphics2D object. import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.awt.print.*; \/** An example of a printable window in Java 1.2. The key point * here is that any component is printable in Java 1.2. * However, you have to be careful to turn off\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":10245,"url":"http:\/\/bangla.sitestree.com\/?p=10245","url_meta":{"origin":10267,"position":3},"title":"DOM example that represents the basic structure of an XML document as a JTree","author":"","date":"August 25, 2015","format":false,"excerpt":"\/\/XMLTree.java \/\/Uses the following files Uses the following files: \u00a0\u00a0\u00a0 * XMLFrame.java:Swing application to select an XML document and display in a JTree. ExtensionFileFilter.java Allows you to specify which file extensions will be displayed in a JFileChooser. test.xml Default file loaded if none selected by user. perennials.xml and perennials.dtd Data\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":10243,"url":"http:\/\/bangla.sitestree.com\/?p=10243","url_meta":{"origin":10267,"position":4},"title":"Creates three radio buttons and illustrates handling","author":"","date":"August 25, 2015","format":false,"excerpt":"JRadioButtonTest.java Creates three radio buttons and illustrates handling ItemEvents in response to selecting a radio button. import javax.swing.JRadioButton; import javax.swing.ButtonGroup; import java.awt.*; import java.awt.event.*; import javax.swing.*; \/** \u00a0*\/ public class JRadioButtonTest extends JPanel \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 implements ItemListener { \u00a0 public JRadioButtonTest() { \u00a0 \u00a0 \u00a0\u00a0\u00a0 String[] labels = {\"Java Swing\",\"Java Servlets\",\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":27192,"url":"http:\/\/bangla.sitestree.com\/?p=27192","url_meta":{"origin":10267,"position":5},"title":"JTable Examples #Programming Code Examples #Java\/J2EE\/J2ME #Advanced Swing","author":"Author-Check- Article-or-Video","date":"May 13, 2021","format":false,"excerpt":"# JTableSimpleExample.java Simple table that takes column names and data from arrays of Strings. import java.awt.*; import javax.swing.*; \/** Simple JTable example that uses a String array for the * table header and table data. * *\/ public class JTableSimpleExample extends JFrame { public static void main(String[] args) { new\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":[]}],"_links":{"self":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10267","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\/130"}],"replies":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10267"}],"version-history":[{"count":1,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10267\/revisions"}],"predecessor-version":[{"id":10268,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10267\/revisions\/10268"}],"wp:attachment":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10267"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}