JTree delete node

Have a problem with JTree
A node I call folderNode will normally contain sub-nodes with names lik subnode1,subnode2,subnode3 etc. (Just examples)
The folder node will then represent the range, so for one with the mentioned subnodes, name would be "subnode1- subnode3".
To update this foldername after I have deleted say nr 3, I use "theFolderNode.setUserObject("new name here")), and then treeModel.nodeChanged(theFolderNode); I would then expect "subnode1- subnode2". (Don't mind the method of finding the correct label..)
If I then try to get the new userObject and checking by typing:
System.out.println(theFolderNode.getUserObject().toString()); - I actually get out what I want, but the label of the FolderNode is still not updated..
What am I missing here??

Here is an excert from an article from javaworld
"The Java programmer must keep in mind that it is the garbage collector that runs finalizers on objects. Because it is not generally possible to predict exactly when unreferenced objects will be garbage collected, it is not possible to predict when object finalizers will be run. Java programmers, therefore, should avoid writing code for which program correctness depends upon the timely finalization of objects. For example, if a finalizer of an unreferenced object releases a resource that is needed again later by the program, the resource will not be made available until after the garbage collector has run the object finalizer. If the program needs the resource before the garbage collector has gotten around to finalizing the unreferenced object, the program is out of luck."
http://www.javaworld.com/javaworld/jw-08-1996/jw-08-gc.html
Generally without any tweaking the GC only runs when it has to, so your memory with be recycled then.
You can call System.gc() but that doesn't cause garbage recycling, but rather tells the JVM that you would like to do it, and then it will do it sometime after that.

Similar Messages

  • Help needed in deleting nodes from RAC database

    Our DB is 10g RAC database and the servers are Window 2003 server. Initially the database was configured to have 4 nodes. For some reason we stopped the instances in the first two nodes and the current database is running on node3 and node4. I queried the v$thread view and it shows 3 records. Thread 2 is closed and disabled. Thread 3 is open and public and thread 4 is open and private. Now we need to disconnect nodes 1 and 2 from RAC db and cluster ware (We use Oracle cluster ware) and plan to use those two servers for other purposes. Although I read through the Oracle doc regarding deleting node from RAC “11 Adding and Deleting Nodes and Instances on Windows-Based Systems” and wrote down the steps we need to take but I am still not comfortable in doing it since it is production env and we don’t have any dev env to practice those steps. So I would like to borrow your experiences and your lessons learned while you were doing those. Please share your thoughts and insights with us.
    Thank you so much for your help,
    Shirley

    what's your full version? I can warn about specific issues in 10.1.0.3 and 10.2.0.1 - for example, in some cases (depending on how the listener was configured), it will be impossible to delete the listener for the deleted node. Known bug.
    To avoid many many known bugs, you may want to upgrade to at least 10.2.0.2 before removing a node (from my experience, this is the first stable RAC version).
    In any case, deleting a node is a rather delicate process. I really really recommend practicing. Take any pc/laptop, install VMWARE, define two virtual machines, install RAC and remove one node. It will take you an extra day or two, and could save your production.

  • I deleted nodes with the web developer and the deletion has become permanent. How to undo?

    I was trying to remove all the "Recommended Pages" etc. garbage on the right-hand side of Facebook and got a little click happy with 'delete nodes' using the Web Dev tools - as cathartic as it was! :)
    Now it seems as though I have broken FB on Firefox (seems to work fine on IE, surprisingly) as pics seem to be missing and the left-hand menu as well - but, of course the stuff I was trying to rid myself of comes back just fine ... sigh.
    I've read that all changes are supposed to be temporary until you restart the browser but this hasn't helped at all and I did try unchecking the 'Use hardware acceleration when available' that I read somewhere else, to no avail.
    Any assistance that can be rendered would be very much appreciated.
    For the record, I've learned my lesson and won't futz around with this anymore! :)

    For a node deletion in the Inspector tool,revert that by reloading the page. If that isn't working for you, you could try Command+Shift+r to reload the page bypassing the cache.
    You can check for problems with the sessionstore.js and sessionstore.bak files in the Firefox Profile Folder that store session data.
    Delete the sessionstore.js file and possible sessionstore-##.js files with a number and sessionstore.bak in the Firefox Profile Folder.
    HT > Profile Directory: Open Containing Folder
    http://kb.mozillazine.org/Profile_folder_-_Firefox
    Deleting sessionstore.js will cause App Tabs and Tab Groups and open and closed (undo) tabs to get lost, so you will have to create them again (make a note or bookmark them).
    http://kb.mozillazine.org/Multiple_profile_files_created

  • Program to add node /  delete node in the tree control via abap object

    Hi all,
    i am new to abap objects.
    Can anyone help me out to give program about add node , delete node at
    a particular point in tree hierarchy.
    folder1                     -- level 1
    subfolder1          -- level 2
    *********subfolder1   -- level 3
    *********subfolder2  -- level 3
    subfolder2          -- level 2
    folder2                     -- level 1
    if i select level3 and click on ADD button .....i get a facility to add new node
    at level 3 and and same thing can happen at level1 and level2 ............ if i select
    and folder at level3 and click on delete button ....it should delete that folder...
    if you do not have such program ........then guide me how to achieve this target via object oriented because i have to split the screen also and have to show some alve display in that.
    just guide me how to add and delete node at a particular level in tree structure....
    thanks in advance........

    Hello Ravi,
    Try this demo program:
    <b>BCALV_TREE_01</b>
    <b>BCALV_TREE_DEMO</b>
    BCALV_TREE_SIMPLE_DEMO
    Also try:
    BCALV_TREE_02
    BCALV_TREE_03
    BCALV_TREE_04
    BCALV_TREE_05
    BCALV_TREE_06
    regards,
    Beejal
    **reward if this helps

  • Delete node elements

    I have created 5 elements of a node . I want to delete nodes. But it is giving error .
    Context
              sample (node )    [ cardinality 0...n , selection 0..1 ]
                          name (attr)
                          number(attr)
    code :
    public void onActioncreate(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActioncreate(ServerEvent)
        for(int i=0;i<5;i++){
             IPrivateClearnodeElements.ISampleNode node =wdContext.nodeSample();
             IPrivateClearnodeElements.ISampleElement ele = node.createSampleElement();
             ele.setName("Name "+i +" : " );
             ele.setNumber(i+"");
             node.addElement(ele);
        //@@end
      public void onActionclear(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionclear(ServerEvent)
        wdComponentAPI.getMessageManager().reportSuccess(wdContext.nodeSample().size()+"");
        for(int i=0;i<5;i++)
              try{
              wdContext.nodeSample().removeElement(wdContext.nodeSample().getSampleElementAt(i));
              wdComponentAPI.getMessageManager().reportSuccess("Deleted : "+ i+"");
              catch(Exception e)
                   wdComponentAPI.getMessageManager().reportSuccess(e.getMessage()" : " i+"");
        //@@end
    output :
    5
    Deleted : 0
    Deleted : 1
    Deleted : 2
    Index: 3, Size: 2 : 3
    Index: 4, Size: 2 : 4
    Why it is not able to delete the last two node elements ????????????????//
    Also any other way is there to  delete  elements of the node?
    Srini

    Hi srinivasa,
    You have used the code to delete the element
    for(int i=0;i<5;i++)
    try{
    wdContext.nodeSample().removeElement(wdContext.nodeSample().getSampleElementAt(i));
    wdComponentAPI.getMessageManager().reportSuccess("Deleted : "+ i+"");
    catch(Exception e)
    wdComponentAPI.getMessageManager().reportSuccess(e.getMessage()" : " i+"");
    Now.. See getSampleElementAt(i) method returns the element of i th element. On that case you have to use
    getSampleElementAt(0). In that case it wiil return 0ih element end 0th element will be deleted. After deletion the 0th element 1st element will move to the 0th position.
    So. in that way you can delete all the elements.

  • Urgent!!!! Add/Delete nodes

    Hi Friends!
    How to add/delete nodes at any level and update the base table whenever I add/delete nodes to the tree?
    Thanks

    There are 2 kinds of XML parsers : SAX and DOM. DOM seems to suit your need. You can use JAXP APIs to add, delete or change nodes or attributes.
    http://java.sun.com/webservices/jaxp/dist/1.1/docs/tutorial/TOC.html provides contents that would satisfy most of the needs.
    To save a DOM modified XML file use java IO APIs to write to the same file from which it was read using a Document object ( doc.getNodeValue() ).

  • Remove background in JTree's node

    How to remove colored background in JTree's node?
    http://www.builder.cz/images/client-tree.gif - here is example how it looks like...

    from reading understand white would be best...
    You may have misunderstood.
    In the image you posted there seems to be a problem with a part that strongly reflects the background for example.
    The »ideal« color for efficient clipping depends on the object being photographed, even a green screen would be problematic with an object of a similar green.
    What is the file format you need anyway? psd with transparency or eps with Clipping Path or …?
    Like Silkrooster pointed out Actions and Image Processor, but also Scripts, can help with automising the task with Photoshop – but quite frankly I expect results so bad that each image would likely have to be checked and improved manually.

  • Deleting Nodes from XML Tree (JTree)

    I have created a XML Tree(extended from JTree) using XNodes ( extended from DefaultMutableTreeNode)
    After some insertions, i need to delete certain nodes from the XML Tree.. but after deletion, XNode will be null.
    subroutine is as follows...
    appreciates any advice
    Thanx
    private XNode RemoveExtraNode( XNode xNode ){
    int child;
    String nodeType;
    XNode childNode=null;
    if ( (child=xNode.getChildCount() ) > 0){
    for(int i=0;i<child;i++){
    childNode=(XNode)xNode.getChildAt(i);          
         nodeType = childNode.getType();
         if(nodeType.equals("DTD") )
         childNode.removeFromParent();
    }//end for (int i=1;i<child;i++)
    }//endif((child=xNode.getChildCount())!=0)
    return xNode;     
    }//RemoveExtraNode

    Hi IKEDA
    Thanx for the reply.
    I have tried xNode.remove(childNode) b4 and it still return a null JTree.
    Anyway fyi i discover i can delete last child of xNode and return the correct java tree. therefore to delete a node of my choice i simply insert its next sibling nodes in its place and delete that particular node when it becomes the last child.

  • Refresh JTree keep node x-y position

    Hi,
    I have a JTree which is the folders of the file system. Over time, new folders added/deleted before/after a selected node, so I need to refresh it. How to keep the selected node at the same x-y location of the view?
    I can keep the selected node in the view (visible), but the x-y position may change.
    Any information would be appreciated. Thanks in advance.

    Without seeing any code, tha best I can offer is
    -- before refreshing, store the visible rectangle and the location of the selected node
    -- after refreshing, obtain the location of the selected node and compute the offset
    -- compute the new desired visible rectangle and scrollRectToVisible
    To get better help sooner, post a [_SSCCE_|http://mindprod.com/jgloss/sscce.html] that clearly demonstrates your problem.
    Use code tags to post codes -- [code]CODE[/code] will display asCODEOr click the CODE button and paste your code between the {code} tags that appear.
    db

  • How to change JTree's node icon manually?

    Hi, I'm currently making messenger application using awt and swing. I've searched in google and here(got this), but till now I haven't got solution.
    I want to change user's status icon in the buddy list if the user's status is changed(such like offline and online).
    But for now I want to try to change the icon directly by pressing a button first before thinking about listener for the status.
    I have this tree
         CustomCellRenderer rosterTreeRenderer = new CustomCellRenderer();
            DefaultMutableTreeNode rosterRoot = new DefaultMutableTreeNode("root");
            DefaultMutableTreeNode rosterGroup = null;
             rosterGroup = new DefaultMutableTreeNode("group 1");
             rosterRoot.add(rosterGroup);
             rosterGroup.add(new DefaultMutableTreeNode("abc"));
             rosterGroup.add(new DefaultMutableTreeNode("dce"));
             rosterGroup = new DefaultMutableTreeNode("group 2");
             rosterRoot.add(rosterGroup);
             rosterGroup.add(new DefaultMutableTreeNode("zzz"));
             rosterGroup.add(new DefaultMutableTreeNode("xxx"));
             rosterGroup.add(new DefaultMutableTreeNode("yyy"));
                rosterTree.setCellRenderer(rosterTreeRenderer);This is the cell renderer
    public class CustomCellRenderer extends DefaultTreeCellRenderer
         private static final long serialVersionUID = 1L;
         public CustomCellRenderer(){
            public Component getTreeCellRendererComponent( JTree tree, Object value,
                    boolean isSelected, boolean expanded, boolean leaf, int row,
                    boolean hasFocus )
              DefaultMutableTreeNode node = (DefaultMutableTreeNode)value;
              String     labelText = (String)node.getUserObject();
              if (isSelected)
                   System.out.println("selected");
                   this.setIcon(UIManager.getIcon("Tree.openIcon"));
                   //((DefaultTreeModel) tree.getModel()).nodeChanged(node);
            else if (leaf) {
                this.setIcon(UIManager.getIcon("Tree.leafIcon"));
              } else if (expanded) {
                   this.setIcon(null);
              } else {
                   this.setIcon(null);
              setText(labelText);
              return this;
        public Color getBackgroundNonSelectionColor() {
            return(null);
        public Color getBackground() {
            return(null);
    }Whenever I click the user, the user's icon change, the first phase of my testing is working.
    But after that I'm confused, how can I change the icon when I click a button at the roster frame. How to invoke and send parameter to change icon of specified user? I already read DefaultTreeCellRenderer javadoc but still haven't found clue to what I wanted, most of the methods noted with "Overridden for performance reasons".
    I've already searched for several days for this problem.. Hope someone can help me..
    Thanks

    Sorry I don't know how to delete my question from other forum. I also don't know about crossposting rule(I don't go into javaranch).
    I'm learning java by google and I'm really confused now, everyone I asked in real life doesn't know the solution. I'm doing a thesis making chat messenger, my lecturer also doesn't know how to solve my problem.
    Sorry I really don't know about the crosspoting rule. I only read the rule from each forum.
    Can someone help me please? :(

  • Using Java, How can I Update, Add, Delete nodes in XML Files.

    Hi,
    I want to store the student record (like Name, Age, school name, total mark etc.,) as nodes in the XMLfile. Also I should able to Update, Add, Delete any nodes (student record) in the XML file. How can I achieve this...using Java
    I am able to read the content of the xml file using xml-parser. But my problem is
    updating the xml file.
    pls suggest some solutions or links with " example source code"
    Thanks :-)

    There are 2 kinds of XML parsers : SAX and DOM. DOM seems to suit your need. You can use JAXP APIs to add, delete or change nodes or attributes.
    http://java.sun.com/webservices/jaxp/dist/1.1/docs/tutorial/TOC.html provides contents that would satisfy most of the needs.
    To save a DOM modified XML file use java IO APIs to write to the same file from which it was read using a Document object ( doc.getNodeValue() ).

  • How can i add and delete node in tree in run time

    i want to know the method that let me select tree node to delete it and another to input upon user inputs

    Hello,
    why don't you just enter "add tree node" in the Search Forum search box ?
    There are plenty of samples.
    Francois

  • Help on Deleting Node in Tree?

    I'm trying to delete a node on a tree and some weird stuff is
    occurring. Here is my code:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    initialize="init();" layout="absolute">
    <mx:Script>
    <![CDATA[
    private function click () : void {
    if (MyTree.selectedItems.length > 0) {
    var items:Array = MyTree.selectedItems;
    for (var i:int = 0; i < items.length; i++) {
    var nodeToDelete:XML = XML(items
    var xlcParent:XMLListCollection = new
    XMLListCollection(nodeToDelete.parent().children());
    var iIndex:int = xlcParent.getItemIndex(nodeToDelete);
    xlcParent.removeItemAt(iIndex);
    ]]>
    </mx:Script>
    <mx:XMLListCollection id="MyDP">
    <mx:XMLList>
    <root label="Default Policy">
    <node label="node1"/>
    <node label="node2"/>
    <node label="node3"/>
    <node label="node4"/>
    <node label="node5">
    <node label="node1"/>
    <node label="node2"/>
    <node label="node3"/>
    <node label="node4"/>
    <node label="node5">
    <node label="node1"/>
    <node label="node2"/>
    <node label="node3"/>
    <node label="node4"/>
    </node>
    </node>
    </root>
    </mx:XMLList>
    </mx:XMLListCollection>
    <mx:Tree labelField="@label" id="MyTree"
    dataProvider="{MyDP}" x="141" y="109" width="528" height="440"/>
    <mx:Button click="click();" x="141" y="557" label="Delete
    Selected Node"/>
    </mx:Application>
    For some reason when I expand all the nodes and try to delete
    one of the great grand children all of the great grand children
    shift over as if they are siblings of the node that I deleted the
    great grand children from.
    Anyone have some good ideas? I sure wish deletion of nodes
    was as easy as in actionscript 2.0

    There a quite a few posts about this problem here already -
    it seems to be a tree rendering bug (seems to come in various
    different flavours).
    The safest work around after fiddling with the nodes in the
    tree is to get the axe out and reassign the data provider. To be
    nice to the user, you might want to keep the expansion state (this
    may not work if you made big "structural" changes to the tree).
    The following works for me (after your changed the tree data
    model):
    var openItems:Object = treeopenItems;
    tree.dataProvider = tree.dataProvider;
    this.openItems = openItems;
    Hope this helps.
    Robert.

  • Jtree custom nodes

    Hi there,
    the "How to Use Trees" tutorial shows how to create simple JTrees where each node is a String:
    http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html
    I need to have tree structure where each node is like a form entry.
    For example some like this:
    + name: [ ........... ]
    + surname: [ ........... ]
    + child
    ---------+ name: [ ........... ]
    ---------+ surname: [ ........... ]
    and so on...
    The best way that I can think of to do that is to make each node be a JPanel and add to it a JLabel and a JTextField. If this is really the best way to do that then my JTree needs to have something different than DefaultMutableTreeNode as nodes because they can only be used to display Strings.
    So provided there is no better way to do what I want to do, the question is, how do I put a JPanel in a JTree node?

    I think the better way is to use a UserObject giving a summary String in its toString method for standard node display, and to display an extra JDialog for editing all the details of the UserObject if the user chooses to edit the node. Imho, displaying complex nodes directly in the tree tends to confuse the user.

  • JTree multiple nodes selection problem !

    I can not make my JTree to be in multiple node selection mode.
    I have custom tree model and tree node class, the tree model class
    implements javax.swing.tree.TreeModel, and the tree node is an ordinary
    Java object.
    In this setting, my JTree is always in single selection mode.
    I have tried set the selection model after the JTree has initialized, and
    it didn't work.
    What I missed in TreeModel implementation ? Or should my tree node class
    also implements javax.swing.tree.TreeNode ?
    Don't tell me just call
    xxtree.getSelectionModel().setSelectionMode(javax.swing.tree.TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
    It didn't work.

    Just in case anyone wants to know, I did find the magic number of files, and what the problem is. I talked with tech suppot at Adobe, and they know the problem exists, but won't fix it. I did put in a request in the "Request a Feature" form. Read on:
    The magic number is 40 Canon 1Ds Mark III Raw files, and clicking on three or more keywords. The key to not having the numbers of keywords counted incorrectly in the filter pane is to click on the keywords as fast as you can before it starts to write to the metadata. If you click on each keyword one at a time, and wait about a second or more between selecting the keywords, then the counts in the filter panel for the number of keywords is not correct in relation to the number of files that you have chosen to apply keywords to. The cure for this is to click as many keywords as possible as fast as you can before the software starts incorporating the keywords into the metadata.
    I would suggest to Adobe, that a nice feature would be that one could click on as many keywords as one would want, to as many files one would want, and then have a button or icon that would enable one to then apply all the keywords at once, instead of applying them as you click them as it is now. I also would love it if Adobe fixed it now instead of waiting to fix it in the version of CS5. Someone on Adobe's support line told me that Adobe would rather wait to put this into the CS5 version than fix it now. I don't think that is right, but heck, I am only one guy who depends on this software to provide images keyworded to my clients in a timely manner. I would never run my business like this Adobe. If there is a problem, and there is, please fix it now, or give me some of my money back since your product has a design flaw that is having a negative impact in my ability to to my job and run my business.
    Thanks!
    Daniel Root
    Portland, OR

Maybe you are looking for