File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Swing / AWT / SWT and the fly likes Dynamic JTree Components Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "Dynamic JTree Components" Watch "Dynamic JTree Components" New topic
Author

Dynamic JTree Components

Craig Snowbarger
Ranch Hand

Joined: Mar 07, 2001
Posts: 38
Hello,
Can somebody explain to me, or point me towards an example of a JTree that will dynamically change individual nodes based on criteria from a different component, such as a Resultset? For example, if you wanted each individual node icon to be set according to it's status in the database - if it's "available" it would have a green icon, if it's "not-available" it would have a red icon.
I know that the TreeCellRenderer is used to do this, but as far as I can tell, it only allows one to change parts of the tree according to criteria/parameters specific to the JTree itself like, "selected", "leaf", "parent", "expanded". Is it possible to change parts of the JTree with parameters from different components?
Regards,
Craig Snowbarger
Anonymous
Ranch Hand

Joined: Nov 22, 2008
Posts: 18944
When you construct the nodes of your JTree you are passing a UserObject to the constructor for DefaultMutableTreeNode(). You are most likely using a String for this constructor, but that is not your only option. You can pass a custom object, too.
For example, I have a recipe database. I created a recipe object which stores all of the important information of a row in the recipe table. I implemented the toString() method so the Recipe object knows how to display its self as a string. I populated my Recipe object with values from a row in the Recipe table in a database. Then I used my Recipe object as a UserObject to create a node. In this way, each node represents all of the important information found in a record in my recipe database.
Is this what you meant?
Craig Snowbarger
Ranch Hand

Joined: Mar 07, 2001
Posts: 38
That may be what I meant, I'm not for sure. Here is a snippet of my JTree Constructor. My JTree is created dynamically from information in a database. You'll have to forgive me for the sloppy code. I hope you can understand it. I guess my Userobject used to create my nodes are strings from my queries.
Anonymous
Ranch Hand

Joined: Nov 22, 2008
Posts: 18944
Yup, I feel your pain. I started out by doing mine almost exactly like that. I ended up making some changes. Here is a suggestion for a change you could make that would make your tree more OO.

Now when you get ready to do something with your node, it is actually an object of type Equipment. It knows all kinds of stuff about its self, including which icon it is supposed to use to display its self.
Please excuse the sloppieness of my code.
Martin Schneider
Ranch Hand

Joined: May 16, 2002
Posts: 42
Hi,
I found this topic and I decided to continue this because I have basically same kind of problem.
So how I can create JTree using Value isParent that is taken from db? I mean there is always root and after that comes those nodes who has value 0 as their isParent value. After that starts some kind of recursive loop where all the children are created. Im totally lost so please help?
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Dynamic JTree Components
 
Similar Threads
JTree font size question
Jtree change a node
JTree
JTree
JTree