Article View: borland.public.jbuilder.java.swing
Article #1579setting JTree icons
From: Alan Shiers
Date: Tue, 14 Oct 2003 17:40
Date: Tue, 14 Oct 2003 17:40
72 lines
3217 bytes
3217 bytes
Hi there,
I'm trying out a sample program using a JTree and I'm trying to render
my own icons for closed/open folders and leaf nodes.
When I run my sample program I don't get any error messages and I might get
only one out of the three icons displayed. For instance only the
closedFolder icon will display, however, when I expand the node the icon
disappears. It should be swapped with an openFolder icon.
I don't get it! Could someone please look over my code below and advise as
to where I went wrong?
Alan
************************************************
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.net.*;
import javax.swing.tree.*;
public class GetIcon extends JFrame
{
public GetIcon()
{
super("Tree Test Example");
}
public static void main(String[] args)
{
GetIcon myIcon = new GetIcon();
myIcon.init();
}
public void init()
{
setSize(300, 250);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//Create the nodes.
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root Node");
root.insert(new DefaultMutableTreeNode("one"), 0);
DefaultMutableTreeNode two = new DefaultMutableTreeNode("two");
two.insert(new DefaultMutableTreeNode("four"), 0);
two.insert(new DefaultMutableTreeNode("five"), 1);
root.insert(two, 1);
root.insert(new DefaultMutableTreeNode("three"), 2);
//Create a tree that allows one selection at a time.
JTree tree = new JTree(root);
DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();
renderer.setLeafIcon(new ImageIcon("images/Leaf.gif"));
renderer.setOpenIcon(new ImageIcon("images/OpenFolder.gif"));
renderer.setClosedIcon(new ImageIcon("images/ClosedFolder.gif"));
tree.setCellRenderer(renderer);
tree.setShowsRootHandles(true);
tree.setRowHeight(25);
tree.getSelectionModel().setSelectionMode
(TreeSelectionModel.SINGLE_TREE_SELECTION);
getContentPane().add(tree, BorderLayout.CENTER);
setVisible(true);
}
}
Technical Details
Message-ID:
<3f8c369b@newsgroups.borland.com>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!news-out1.nntp.be!propagator2-sterling!In.nntp.be!newsfeed01.tsnz.net!news.xtra.co.nz!newsfeeds.ihug.co.nz!ihug.co.nz!newsgroups.borland.com!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 111d45,5272af97cf26517 X-Google-Attributes: gid111d45,public X-Google-ArrivalTime: 2003-10-14 11:05:15 PST From: "Alan Shiers" <ashiers@hfx.eastlink.ca> Newsgroups: borland.public.jbuilder.java.swing Subject: setting JTree icons Date: Tue, 14 Oct 2003 14:40:16 -0300 Lines: 74 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 NNTP-Posting-Host: 24.222.101.2 Message-ID: <3f8c369b@newsgroups.borland.com> X-Trace: newsgroups.borland.com 1066153627 24.222.101.2 (14 Oct 2003 10:47:07 -0700) Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!news-out1.nntp.be!propagator2-sterling!In.nntp.be!newsfeed01.tsnz.net!news.xtra.co.nz!newsfeeds.ihug.co.nz!ihug.co.nz!newsgroups.borland.com!not-for-mail