Creating Jtree Using ArryList

Good Evening.
Am new to swing, i need to create Dynamic Swing JTree for below StringArray.
Root has leaf node and Folders
Folders may have Folder node or leaf node
String path[] = {"Root/TS1",
     "Root/Folder1/TS2",
     "Root/Foder2/Folder3/TS3"};
It would be great help if you send me the code.
Thanks in advance.
Shrinivas
Edited by: Shrinivas on Feb 18, 2011 7:00 AM

Hi Shrinivas,
one way could be to create the nodes level by level: first all level 0 nodes, than all level 1 nodes, and so on. In this case we don't have to bother about a parent node being already created or not. To find the parent node for a particular node we just make a simple method that processes the tree recursively, for example like this:
private void buildTree(final String[] flatData, final int maxLevel) {
    for (int level = 0; level < maxLevel; level++) {
        for (String nodeData : flatData) {
            String[] nodePath = nodeData.split("/");
            if (level < nodePath.length) {
                DefaultMutableTreeNode newChild = new DefaultMutableTreeNode(nodePath[level]);
                parent = (DefaultMutableTreeNode) tree.getModel().getRoot();
                findParent(tree.getModel().getRoot(), nodePath, level);
                if (parent != null) {//null = exists already
                    ((DefaultTreeModel) tree.getModel()).insertNodeInto(newChild, parent, parent.getChildCount());
private void findParent(final Object o, final String[] nodePath, final int level) {
    int cc = tree.getModel().getChildCount(o);
    for (int i = 0; i < cc; i++) {
        DefaultMutableTreeNode child = (DefaultMutableTreeNode) tree.getModel().getChild(o, i);
        if (child.getLevel() == level && child.toString().equals(nodePath[level - 1])) {
            parent = child;
        } else if (child.getLevel() == (level + 1) && child.toString().equals(nodePath[level])) {
            parent = null;//exists already
        if (!tree.getModel().isLeaf(child)) {
            tree.expandPath(new TreePath(child.getPath()));
            findParent(child, nodePath, level);
}Cheers,
André

Similar Messages

  • Create JTree using data from DataBase

    Hi all,
    I have GUI with JTree, and i have data in database with ParentID, ChiledID fileds,
    i want to crate tree structure from using data in database.
    can you people tell me how can i proceed, I will get a data as List of Vectors from DB.
    Thanks
    Daya

    i got the solution,
    what i did i having object class extended DefaultMutableTreeNode and i have list of objects class refrence and i know which is parent and a child so just add the child refrence to parent refrence which stored in list.
    Thanks
    daya

  • Creating a dynamic jtree using datas retrieved by dom in xml parsing

    help me with code to create a dynamic jtree using data retrieved as nodes by xml parsing using dom

    Ok, so you want to make a tree. To determine the data that appears in a tree, you have to make a custom tree model. The API for this is at :
    http://java.sun.com/j2se/1.4.2/docs/api/
    A tutorial for using trees is at :
    http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html
    I assume you are going to be using Nodes, since you are using XML. For this I might start with something like
    class NodeTreeModel implements TreeModelI would then implement the 'getChildCount()' as the number of subnodes a node has, and the value of a tree node to the nodes value.
    Hope that starts you off.

  • How can i refresh a jtree using DefaultMutableTreeNode?

    I already create a jtree using DefaultMutableTreeNode, and i also could implement to it the addMouseListener to do a action when the user press every node......Also i used the following instruction to remove all nodes: root_tree.removeAllChildren(); and it instruction remove all the nodes....but when i :
    fill the tree
    compile my program
    i see the tree in my jpanel....it is Ok!
    now.....
    fill the tree
    remove the tree
    compile my program
    i see only the root (this i wish) it is Ok!
    But now i would like that after that i press a combo element (in the actionperformed method):
    remove the tree
    fill the three with the new nodes
    show the tree
    But my tree always is the same :(......is like it to need a repaint ....but i already implement it...but i obtain the same result.....
    Do somebody have any suggestion...or idea how i can do a refresh in my jtree?....
    Anybody could help me please?
    Thanks in advance.....
    Mary

    Construct your tree like this:DefaultMutableTreeNode rootNode = xxx;
    DefaultTreeModel model = new DefaultTreeModel( rootNode );
    JTree tree = new JTree( model );When you update the root node, just tell the model to fire the appropriate change event by doing this:model.reload( rootNode );or this:model.nodeStructureChanged( rootNode );or this:model.setRoot( rootNode )

  • Hashtable or Vector to create Jtree ?Data from dtatbase.

    I want build JTree in JApplet .
    The JApplet is connecting to a database .
    As soon as data change ,JTree change.
    1.How can use hashtable or Vector to create Jtree ?
    the Hashtable's Data or Vector's Data from Database.
    2.How Japplet connect to a database and get data?

    1-How can use hashtable or Vector to create Jtree ?
    read JTree constrcutors in which u can use Vector for creating JTree like new JTree(myVector);
    and in this myVector u can store your own objects and override toString() method of that object (stored in Vector), but as my practice its not good.
    2.How Japplet connect to a database and get data?
    You have to make signed applet for connecting your applet with database , and sorry to say but ita a real pain in your -------------

  • Creating JTree by JTable Data

    Hi,
    I want to create JTree for the data in JTable, Is it possible. Thanks

    This question is a repeat of your last posting:
    http://forum.java.sun.com/thread.jspa?threadID=648759&tstart=0
    and you still haven't followed the advice given there. Quit cluttering the forum with the same question
    I will first explain what I want. I wanna 3 structures: TextField,JButton, and JTable.The Swing tutorial on [url http://java.sun.com/docs/books/tutorial/uiswing/components/list.html]How to Use Lists has an example that is identical to this except that it uses a JList instead of a JTable. However, the concept is the same.
    .

  • Error while creating stock using tcode: MB1C

    Error while creating stock using tcode: MB1C
    The Error is: Check table T004F:entry G006 does not exist

    Hi ,
    Please check the FSV (field status variant) for your company code in OBY6 .
    then go to transaction code OB14 --> enter the FSV --> Check if field status group G006(Material account) is maintained there or not.
    if not please maintain it.
    Thanks & Regards
    Anshu

  • Logical error in creating tables using db link in solaris

    Hi,
    While creating table using the syntax create table newtab...as select * from tab@dblink .. I am facing a problem. The newtab table created is having a structure different (from datalength point of view of varchar2 and char datatypes) from the source. The data length is getting tripled i.e. if a column a is varchar2(20) in tab then it is becoming --- a varchar2(60) in newtab. This is happening in solaris environment when the two databases are in 2 different servers. Please let me know if there are any patches to resolve the problem.
    Thanks
    Arnab

    ORA-02019: connection description for remote database not foundHave you used this database link successfully for some other queries?
    The error posted seems to indicate that the DB Link is not functional at all. Has it worked for any other type of DML operation or is this the first time you ever tried to use the link?

  • How to save report in PersonalCategory  after creating it using java panel?

    Hi,
    Anybody knows How to save report in PersonalCategory  after creating it using java panel?
    I dont want to save it in public folder. I want to save report (webi) in user's personal category.
    can anybody send me source code?
    It will help me a lot.
    Thanks in advance
    Amol Mali

    Hi teda,
    i'm assuming that you have seen my post that i did successfuly save report in user's personal category.
    Actually the report is created in webi java panel using RE SDK and  is saved in Report Sample Folder then i'm saving it in user's personal category by following code
    string query = "Select SI_PERSONAL_CATEGORIES From CI_INFOOBJECTS Where "
                         + "SI_INSTANCE=0 And SI_ID=" + reportID;
                    InfoObjects infoObjects = infoStore.Query(query);
                    InfoObject infoObject = infoObjects[1];
                    Webi wreport = (Webi)infoObject;
                    ObjectRelativeIDs personalIDs = wreport.PersonalCategories;
                /personalIDs.Add(Convert.ToInt32(categoryID));
                   infoStore.Commit(infoObjects);
    But the report is presents in the Folder also and in user's personal category also.
    I dont want the report to be in the folder (Report Sample) if i saved it in user's personal category.
    How can i do that?
    any idea.
    Please help me.
    Thanks in advance
    Amol Mali
    Edited by: amol mali on Jan 9, 2009 7:55 PM

  • I have an ipad mini. From one moment to another a document that was created and used on pages app ( on the ipad mini) does not want to open ( When pressed it states " document cant be opened). How can I make this document open again?

    I have an ipad mini. From one moment to another a document that was created and used on pages app ( on the ipad mini) does not want to open ( When pressed it states " document cant be opened). How can I make this document open again?
    I have tried back ups and  restoring, resetting, and even updating the pages app. And nothing has worked.

    I have an ipad mini. From one moment to another a document that was created and used on pages app ( on the ipad mini) does not want to open ( When pressed it states " document cant be opened). How can I make this document open again?
    I have tried back ups and  restoring, resetting, and even updating the pages app. And nothing has worked.

  • Why Dynamic Parameter is not working, when i create report using stored procedure ?

    Post Author: Shashi Kant
    CA Forum: General
    Hi all
    Why Dynamic Parameter is not working, when i create report XI using stored procedure ?
    Only i shaw those parameters which i used in my stored procedure, the parameter which i create dynamic using stored procedure
    is not shown to me when i referesh the report for viewing the results.
    I have used the same procedure which i mention below but can not seen the last screen which is shown in this .
    ============================================================================================
    1. Select View > Field Explorer2. Right-click on Parameter Fields and select New from the right-click menu.3. Enter u201CCustomer Nameu201D as the name for your parameter4. Under u201CList of Valuesu201D select u201CDynamicu201D5. Under the Value column, click where is says u201Cclick here to add itemu201D and select Customer Name from the drop-down list. The dialog shown now look like the one shown below in Figure 1. Click OK to return to your report design.
    Dynamic Parameter Setup6. Next, select Report > Select Expert, select the Customer Name field and click OK.7. Using the drop-down list beside select u201CIs Equal Tou201D and using the drop-down list, select your parameter field (it should be the first field). 8. Click OK to return to your report design and see the parameter dialog.The parameter dialog will appear and show you a dynamic list of values that is updated each time your run your report. It couldnu2019t be easier! In our next tutorial, we will be looking at how to use this feature to create cascading parameter fields, where the values are filtered by the preceding selection.
    Dynamic Parameters in Action
    My question is that whether dynamic parameter is working with storedprocedure or not.
    When i added one table and try to fetch records using dyanmic prameters. after that i am not be able to find the dynamic parameter option when i referesh my report.
    One more thing when i try the static parameter for my report, the option i see when i referesh the screen.
    Please reply soon , it's urgent
    Regards
    shashi kant

    Hi Kishore,
    I have tested the issue step by step by following you description, while the first issue works well in my local environment. Based on my research, this can be caused by the lookup expression or it indeed return Male value based on the logic. If you use the
    expression below, it will indeed only return the Male record. So please try to double-check the record in the two datasets and the expression in your environment:
    =lookup(first(Fields!ProgramID.Value,"DataSet1"),Fields!ProgramID.Value,Fields!Gender.Value,"DataSet2")
    As to the second issue, please try to use the following expression:
    =Count(Lookup(fields!ProgramID.value,fields!ProgramID.value,fields!Gender.value,"DataSet2"))
    Besides, if this issue still exist, in order to trouble shoot this issue more efficiently, could you please post both the .rdl  file with all the size properties to us by the following E-mail address?  It is benefit for us to do further analysis.
    E-mail: [email protected]
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • Creating Report using EPM Functions with Dynamic Filters

    Hi All,
    I am new to BPC, In BPC 7.5 i seen like we can generate EPM report using EVDRE function very quickly and easy too. Is the same feature is existing in BPC 10.0 ? if no how can we create EPM reports using EPM Functions with Dynamic Filters on the Members of the dimension like in BPC 7.5.
    And i searched in SDN, there is no suitable blogs or documents which are related to generation of Reports using EPM Functions. All are described just in simple syntax way. It is not going to be understand for the beginners.
    Would you please specify in detail step by step.
    Thanks in Advance.
    Siva Nagaraju

    Siva,
    These functions are not used to create reports per se but rather assist in building reports. For ex, you want to make use of certain property to derive any of the dimension members in one of your axes, you will use EPMMemberProperty. Similary, if you want to override members in any axis, you will make use of EPMDimensionOverride.
    Also, EvDRE is not replacement of EPM functions. Rather, you simply create reports using report editor (drag and drop) and then make use of EPM functions to build your report. Forget EvDRE for now.
    You can protect your report to not allow users to have that Edit Report enabled for them.
    As Vadim rightly pointed out, start building some reports and then ask specific questions.
    Hope it clears your doubts.

  • How to create invoice using bapi  base on delivery number with example

    hi,
    Pl give me one example to create invoice using bapi base on delivery number (PGI).

    Use this code
    * Pass the delivery no to the FM to create the invoice
          wa_vbsk-smart = u2018Fu2019.
            wa_komfk-vbeln = nast-objky. u201CuF0DF-----delivery number
            APPEND wa_komfk TO it_komfk.
            CLEAR wa_komfk.
    *    To fill the message structure
    *        l_wa_error-vbeln_vl = nast-objky. " Delivery No.
    *        l_wa_error-fkart = wa_ztab-bil_doc_type." Billing Doc type
            CALL FUNCTION 'RV_INVOICE_CREATE'
                    EXPORTING
    *                 delivery_date             = 0
                     invoice_date              = v_date  u201C<- date
    *                 invoice_type              = '    '
    *                 pricing_date              = 0
                     vbsk_i                    = wa_vbsk
                     with_posting              = u2018Du2019
    *                 select_date               = 0
                     i_no_vblog                = ' '
                     i_analyze_mode            = ' '
                     id_utasy                  = ' '
                     id_utswl                  = ' '
                     id_utsnl                  = ' '
                     id_no_enqueue             = ' '
                     id_new_cancellation       = ' '
    **             IMPORTING
    *               VBSK_E                    =
    *               OD_BAD_DATA               =
    *               DET_REBATE                =
                    TABLES
                      xkomfk                    = it_komfk
                      xkomv                     = it_komv
                      xthead                    = it_thead
                      xvbfs                     = it_vbfs
                      xvbpa                     = it_vbpa
                      xvbrk                     = it_xvbrk
                      xvbrp                     = it_vbrp
                      xvbss                     = it_vbss
    *               XKOMFKGN                  =
    *               XKOMFKKO                  =

  • Error while creating Resource using GDS

    Hi
    Iam trying to create Resource using GDS and it is throwing me error
    clresource: (C189917) VALIDATE on resource egateq00-haegate_reg-res, resource group egateq00-rg, exited with non-zero exit status.
    clresource: (C720144) Validation of resource egateq00-haegate_reg-res in resource group egateq00-rg on node uhegateq02 failed.
    clresource: (C891200) Failed to create resource "egateq00-haegate_reg-res".
    This is the command I executed
    rclresource create -g egateq00-rg -t SUNW.gds
    -p Scalable=false -p Start_timeout=120 -p Stop_timeout=120 -p Probe_timeout=30
    -p Port_list="23001/tcp" -p Start_command="/egateq00/scripts/reg_START.sh" -p Stop_command="/egateq00/scripts/reg_STOP.sh"
    -p Probe_command="/egateq00/scripts/reg_PROBE.sh" -p Child_mon_level=1 -p Network_resources_used=egateq00-lh-res -p Failover_enabled=FALSE
    -p Stop_signal=15 egateq00-haegate_reg-res
    The log under /var/cluster/logs/DS says following
    07/01/2008 17:56:43 uhegateq02 START-INFO> scha_resource_open failed [14]. Keeping the old Log_level value
    07/01/2008 17:56:43 uhegateq02 START-ERROR> Cannot access the start command </egateq00/scripts/reg_START.sh> : <No such file or directory>
    07/01/2008 18:13:23 uhegateq02 START-INFO> scha_resource_open failed [14]. Keeping the old Log_level value
    07/01/2008 18:13:23 uhegateq02 START-ERROR> Cannot access the start command </egateq00/scripts/reg_START.sh> : <No such file or directory>
    However, I can open these scripts and run it from anywhere. I also tested these scripts and they all work fine. They are all set to chmod 777 , so everyone should have execute permission
    Iam not returning any return value from these Start and Stop script , is that the why it is failing
    thanks

    Hi
    I disabled the PMF as described on the http://blogs.sun.com/TF/entry/disabling_pmf_action_script_with. This is what I did
    1>Added following line in the top of my Start script
    while getopts 'R:G:' opt
    do
    case "${opt}" in
    R) RESOURCE=${OPTARG};;
    G) RESOURCEGROUP=${OPTARG};;
    esac
    done
    sleep 60 &
    /usr/cluster/bin/pmfadm -s ${RESOURCEGROUP},${RESOURCE},0.svc
    2>While creating the resource , I used property for Start_command="/egateq00/scripts/reg_START.sh -R %RS_NAME -G %RG_NAME"
    Now , after doing this , My RG is not getting lost. Also , in the message file I do not see the errors of "Start script failed to stay UP"
    However, My Application is not started either.
    This is what the message file says
    Jul 3 16:43:32 uhegateq01 Cluster.RGM.rgmd: [ID 515159 daemon.notice] method <gds_validate> completed successfully for resource <egateq00-haegat
    e-reg-res>, resource group <egateq00-rg>, node <uhegateq01>, time used: 0% of timeout <300 seconds>
    Jul 3 16:43:32 uhegateq01 Cluster.CCR: [ID 973933 daemon.notice] resource egateq00-haegate-reg-res added.
    Jul 3 16:43:32 uhegateq01 Cluster.RGM.rgmd: [ID 224900 daemon.notice] launching method <gds_svc_start> for resource <egateq00-haegate-reg-res>,
    resource group <egateq00-rg>, node <uhegateq01>, timeout <120> seconds
    Jul 3 16:43:32 uhegateq01 Cluster.RGM.rgmd: [ID 252072 daemon.notice] 50 fe_rpc_command: cmd_type(enum):<1>:cmd=</opt/SUNWscgds/bin/gds_svc_star
    t>:tag=<egateq00-rg.egateq00-haegate-reg-res.0>: Calling security_clnt_connect(..., host=<uhegateq01>, sec_type {0:WEAK, 1:STRONG, 2:DES} =<1>, .
    Jul 3 16:43:35 uhegateq01 Cluster.RGM.rgmd: [ID 515159 daemon.notice] method <gds_svc_start> completed successfully for resource <egateq00-haega
    te-reg-res>, resource group <egateq00-rg>, node <uhegateq01>, time used: 2% of timeout <120 seconds>
    Jul 3 16:43:35 uhegateq01 Cluster.RGM.rgmd: [ID 224900 daemon.notice] launching method <gds_monitor_start> for resource <egateq00-haegate-reg-re
    s>, resource group <egateq00-rg>, node <uhegateq01>, timeout <300> seconds
    Jul 3 16:43:35 uhegateq01 Cluster.RGM.rgmd: [ID 252072 daemon.notice] 50 fe_rpc_command: cmd_type(enum):<1>:cmd=</opt/SUNWscgds/bin/gds_monitor_
    start>:tag=<egateq00-rg.egateq00-haegate-reg-res.7>: Calling security_clnt_connect(..., host=<uhegateq01>, sec_type {0:WEAK, 1:STRONG, 2:DES} =<1
    , ...)Jul 3 16:43:35 uhegateq01 Cluster.RGM.rgmd: [ID 515159 daemon.notice] method <gds_monitor_start> completed successfully for resource <egateq00-h
    aegate-reg-res>, resource group <egateq00-rg>, node <uhegateq01>, time used: 0% of timeout <300 seconds>
    4>Also , in the /var/cluster/logs/DS , I see the Start script started succesfully
    07/03/2008 16:43:32 uhegateq01 START-INFO> Start succeeded. [egateq00/scripts/reg_START.sh -R egateq00-haegate-reg-res -G egateq00-rg]
    5>Also , in the /var/cluster/logs/DS , I see the Probe script returning 0 , but this is wierd because it should return Non zero number. When I run the Probe script from the command line , it is returning me non zero value when the application is down
    07/03/2008 16:43:35 uhegateq01 PROBE-INFO> The GDS monitor (gds_probe) has been started
    07/03/2008 16:44:35 uhegateq01 PROBE-INFO> Probe has been executed with exit code 0 [egateq00/scripts/reg_PROBE.sh]
    07/03/2008 16:44:35 uhegateq01 PROBE-INFO> The probe result is 0
    07/03/2008 16:45:35 uhegateq01 PROBE-INFO> Probe has been executed with exit code 0 [egateq00/scripts/reg_PROBE.sh]
    07/03/2008 16:45:35 uhegateq01 PROBE-INFO> The probe result is 0
    07/03/2008 16:46:35 uhegateq01 PROBE-INFO> Probe has been executed with exit code 0 [egateq00/scripts/reg_PROBE.sh]
    07/03/2008 16:46:35 uhegateq01 PROBE-INFO> The probe result is 0
    07/03/2008 16:47:35 uhegateq01 PROBE-INFO> Probe has been executed with exit code 0 [egateq00/scripts/reg_PROBE.sh]
    07/03/2008 16:47:35 uhegateq01 PROBE-INFO> The probe result is 0
    07/03/2008 16:48:35 uhegateq01 PROBE-INFO> Probe has been executed with exit code 0 [egateq00/scripts/reg_PROBE.sh]
    07/03/2008 16:48:35 uhegateq01 PROBE-INFO> The probe result is 0
    07/03/2008 16:49:35 uhegateq01 PROBE-INFO> Probe has been executed with exit code 0 [egateq00/scripts/reg_PROBE.sh]
    07/03/2008 16:49:35 uhegateq01 PROBE-INFO> The probe result is 0
    07/03/2008 16:50:35 uhegateq01 PROBE-INFO> Probe has been executed with exit code 0 [egateq00/scripts/reg_PROBE.sh]
    07/03/2008 16:50:35 uhegateq01 PROBE-INFO> The probe result is 0
    07/03/2008 16:51:35 uhegateq01 PROBE-INFO> Probe has been executed with exit code 0 [egateq00/scripts/reg_PROBE.sh]
    07/03/2008 16:51:35 uhegateq01 PROBE-INFO> The probe result is 0
    07/03/2008 16:52:35 uhegateq01 PROBE-INFO> Probe has been executed with exit code 0 [egateq00/scripts/reg_PROBE.sh]
    07/03/2008 16:52:35 uhegateq01 PROBE-INFO> The probe result is 0
    07/03/2008 16:53:35 uhegateq01 PROBE-INFO> Probe has been executed with exit code 0 [egateq00/scripts/reg_PROBE.sh]
    07/03/2008 16:53:35 uhegateq01 PROBE-INFO> The probe result is 0
    07/03/2008 16:54:35 uhegateq01 PROBE-INFO> Probe has been executed with exit code 0 [egateq00/scripts/reg_PROBE.sh]
    07/03/2008 16:54:35 uhegateq01 PROBE-INFO> The probe result is 0
    07/03/2008 16:55:35 uhegateq01 PROBE-INFO> Probe has been executed with exit code 0 [egateq00/scripts/reg_PROBE.sh]
    07/03/2008 16:55:35 uhegateq01 PROBE-INFO> The probe result is 0
    07/03/2008 16:56:35 uhegateq01 PROBE-INFO> Probe has been executed with exit code 0 [egateq00/scripts/reg_PROBE.sh]
    07/03/2008 16:56:35 uhegateq01 PROBE-INFO> The probe result is 0

  • Error while creating Routing using LSMW

    Hi Guys ,
    I am trying to create LSMW using Direct Input Method .
    My structures are ::
    RC271_DS   Work center structure for direct input (for datasets)
    RC27M_DS   Material master view DIRECT INPUT routing for datasets
    PLKO_DI_DS Header structure for direct input (for datasets)
    PLPO_DI_DS Routing/item structure for direct input (for datasets.
    I getting correct data from multiple flat files .
    It's converting the data also .
    But while executing start direct input method i am getting the followig error ....
    You cannot edit the task list object with activity type
    Please let me know problem guys .
    Regards,
    Raj

    Hi Naveen,
    It means you have to assign  the task list type to  material type ZPRD. Then it will carry its job:
    The path is:
    Go To-> SPRO-> IMG Activity-> Production-> Basic Data-> Routing-> General Data---> Define Material Type Assignments. T-Code: OP50
    I hope it will work.
    Regards,
    Madhu.G

Maybe you are looking for