🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.jbuilder.java.swing
Article #1579

setting JTree icons

#1579
From: Alan Shiers
Date: Tue, 14 Oct 2003 17:40
72 lines
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-mail

Show 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