Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.gui > #347

Re: Dynamically Update JT

From "Jason Cavett" <jason.cavett@THRWHITE.remove-dii-this>
Subject Re: Dynamically Update JT
Message-ID <1165502623.118864.282620@73g2000cwn.googlegroups.com> (permalink)
Newsgroups comp.lang.java.gui
References <6rIdh.2302$ja6.1917@tornado.ohiordc.rr.com>
Date 2011-04-27 15:27 +0000
Organization TDS.net

Show all headers | View raw


  To: comp.lang.java.gui


On Dec 6, 6:33 pm, Brandon McCombs <n...@none.com> wrote:
> Jason Cavett wrote:
>
> > On Dec 6, 1:44 pm, "Jason Cavett" <jason.cav...@gmail.com> wrote:
> >> I'm trying to program the ability for a node on my JTree to have its
> >> icon change when the node is opened.  However, althought it *seems*
> >> that the icon is benig changed (see the code below), the JTree does not
> >> refresh (or at least it doesn't appear that way).  Any tips/hints/ideas
> >> on where to go with this?
>
> >> ((MyOwnCellRenderer)
> >> this.getCellRenderer()).setEditIcon(model.getSelected());
> >> System.out.println(((HasrdTreeCellRenderer)
> >> this.getCellRenderer()).getIcon());
> >> // the icon has been updated based on the println
> >> revalidate();
> >> repaint();
>
> > I think the problem has to do with how I use my cell renderer.
>
> > When I create my tree, I do something like this...
>
> > JTree tree = new JTree();
> > tree.setCellRenderer(new MyOwnTreeCellRenderer());
>
> > Within my tree cell renderer (which extends DefaultTreeCellRenderer) I
> > override the method getTreeCellRendererComponent.  This is where I have
> > the logic to set icons based on what item is in the tree.  The problem
> > I'm having is that if I update one icon, it updates every other node in
> > the tree.  I'm not understanding how to update one single node in the
> > tree using the TreeCellRenderer (if this is even possible).
>
> > Any suggestions?I just used a conditional in the tree cell renderer to specify which
> icon to use so depending on the type of LDAP object I have a different icon:
> class MyTreeCellRenderer extends DefaultTreeCellRenderer
> {
> private static final long serialVersionUID = 0L;
> Font f = new Font("Arial", Font.PLAIN,11);
>     public Component getTreeCellRendererComponent(JTree tree,
>         Object value, boolean selected, boolean expanded,
>         boolean leaf, int row, boolean hasFocus)
>    {
>       super.getTreeCellRendererComponent(tree, value,
>         selected, expanded, leaf, row, hasFocus);
>
>       Node entry = (Node)value;
> if (entry.getNodeType().equals("server"))
>    setIcon(new ImageIcon(LDAPMgr.class.
>         getResource("images/serverIcon.gif")));
> else if (entry.getNodeType().equals("domain"))
>    setIcon(new ImageIcon(LDAPMgr.class.
>         getResource("images/domIcon.gif")));
> else if (entry.getNodeType().equals("organizationalUnit"))
>    setIcon(new ImageIcon(LDAPMgr.class.
>         getResource("images/ouIcon.gif")));
> else if (entry.getNodeType().equals("group"))
>    setIcon(new ImageIcon(LDAPMgr.class.
>         getResource("images/groupIcon.gif")));
> this.setFont(f);
> return this;
>
>
>
> }
> };- Hide quoted text -- Show quoted text -- Hide quoted text -- Show quoted text -

Well, that's what I was doing too.  Problem is, the CellRenderer makes
the change to EVERY icon of that type.  :-\  All I'd like it to do is
make a change to a single icon (the one that I have selected).

---
 * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24

Back to comp.lang.java.gui | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Re: Dynamically Update JT "Jason Cavett" <jason.cavett@THRWHITE.remove-dii-this> - 2011-04-27 15:26 +0000
  Re: Dynamically Update JT "Brandon McCombs" <brandon.mccombs@THRWHITE.remove-dii-this> - 2011-04-27 15:26 +0000
    Re: Dynamically Update JT "Jason Cavett" <jason.cavett@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
      Re: Dynamically Update JT "Brandon McCombs" <brandon.mccombs@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
      Re: Dynamically Update JT "Jim Sculley" <jim.sculley@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000

csiph-web