Images and multiple lines in JTree

I have a JTree and would like to display more details about certain nodes than can be seen in a single line, and perhaps images in some cases. What I was hoping I could do was instantiate DefaultMutableTreeNode with a JPanel that looked the way I wanted, but it turns out DefaultMutableTreeNode just uses the toString method of the object as the string it displays. Is there any way to do this? Here's an example of what I want (if images will display here.. if not, here's the link: http://www.enginuity.org/files/jtree_labels_157.gif )

DefaultMutableTreeNode is only a model class, it does not know or care how the data is displayed (you could use DefaultMutableTreeNode without ever displaying the data in a JTree). What you need is a TreeCellRenderer (although I'm not sure you can set row height with that). This allows you to instruct the JTree to query you for a component to display for each cell of the tree. This component might be a JPanel with whatever you want in it.
You should check this section of the JAVA Tutorial for more details: http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html
If what you need is to display a multiple columns for each node (a so-called TreeTable) then the matter is more complicated. But I found an article from Sun that describes how to write such a thing (I don't have the link handy).
Message was edited by:
A.Cristescu

Similar Messages

  • Posting an Idoc with Multiple Headers and Multiple Lines

    Hi all,
    I have a scenario like this fileXIIdoc
    Invoice file comes in text file with multiple header and multiple lines like this
    111               aaa     13214234    US   (header)
    09082010     ABC    9999            A     (Line)
    222               ccc     43454543    US   (header)
    09082010     XYZ    7777            B     (Line)
    09082010     PQR    8888            C     (Line)
    I need to post single Idoc with all the headers and lines
    we are planning to use Custom Idoc,Is this possible by having the header segment as unbounded??
    Regards
    Edited by: Vamsi Krishna on Sep 8, 2010 8:05 PM

    hi,
    lets go again.
    you have to edit the custom IDoc and change the ocurrance on the header segment. also modify the details segment adding an addtional field that identify which header that this detail belong.
    for this case you cannot change the occurrance in SAP PI because you wont identify what i have told you before.  in PI apply to change the occurrance if you could send ONE Idoc Per Header.
    now is better clear???
    Let us know.
    Thanks
    Rodrigo P-.

  • Can't fix jagged images and horizontal lines when scanning

    Hello, I just bought the HP Envy 5660 and it prints fine but scanning is horrible. I keep getting jagged and horizontal lines after scanning. They came out fine a few times but even on 300 ppi it looks bad. Please give me some advice. Thank you.

    Hello Hulkamania,
    Welcome to the HP Forums.
    I see that you are having some issues with the scan quality with lines and jagged images.
    I have seen this issue before and I was able to resolve it quit easily by doing one simple step.
    Please make sure that you have the printer power cable connected directly to a wall outlet and not a power bar/strip. Here is a document that uses a LaserJet printer as an example but it is meant for HP products in general. Please click on the following link that explains the Issues when Connected to an Uninterruptible Power Supply/Power Strip/Surge Protector.
    Use the ON/OFF button to do a proper power cycle on the printer once it has been connected to a wall outlet.  This will do a Semi Power reset on the printer.
    Try another scan and let me know how it turns out.  Try multiple scans if you like.
    Thanks for your time.
    Cheers,  
    Click the “Kudos Thumbs Up" at the bottom of this post to say “Thanks” for helping!
    Please click “Accept as Solution ” if you feel my post solved your issue, it will help others find the solution.
    W a t e r b o y 71
    I work on behalf of HP

  • Embedding image and multiple queries in cfgrid

    I have a datagrid that displays a user's work history pulled
    from one query. In the original HTML table set up, a status icon
    for each work item was displayed as either "New", 'Needs Attention"
    or "Archived". This status was determined by using a value from the
    first query as a filter in the WHERE clause of the second query:
    ------------------- Original Query -------------------------
    <cfquery datasource="#application.defaultdsn#"
    name="qQuestions">
    SELECT discussions.dateSubmitted, discussions.discussionID,
    discussions.subjectID, discussions.topic, users.firstName + ' ' +
    users.lastName AS stName,
    subjects.subjectID AS Expr1, subjects.subject
    FROM discussions INNER JOIN
    users ON discussions.userID = users.userid INNER JOIN
    subjects ON discussions.subjectID = subjects.subjectID
    WHERE 0=0
    <cfif getDiscussionIDs.recordCount GT 0>
    AND (
    <cfloop query="getDiscussionIDs">
    discussions.discussionID = #getDiscussionIDs.discussionID#
    <cfif getDiscussionIDs.currentRow NEQ
    getDiscussionIDs.recordCount>OR</cfif>
    </cfloop>
    <cfelse>
    AND 0=1
    </cfquery>
    ------------------------ Queries used to determine status
    <cfquery datasource="#application.defaultdsn#"
    name="LatestMessage">
    SELECT Max(discussionPosts.postID) AS NewestMessage
    FROM discussionPosts
    WHERE discussionPosts.discussionID =
    #qQuestions.discussionID#
    </cfquery>
    <cfset variables.userTypetoView = "tutor">
    <!--- <cfif LatestMessage.recordCount --->
    <cfquery datasource="#application.defaultdsn#"
    name="getLastInfo">
    SELECT discussionPosts.userType,
    discussionPosts.dateSubmitted, discussionPosts.viewerID
    FROM discussionPosts
    WHERE discussionPosts.postID = #LatestMessage.NewestMessage#
    </cfquery>
    My question is how can I emulate this same status icon setup
    in a cfgrid? I used the following ActionScript to create a new
    column in the grid and return a string. However, this new column
    must logically know how to display the correct status IMAGE for
    each corresponding row. As you can see, there are no database
    tables for storing the status - which would have made this much
    easier.
    function setStat(){
    eQArchive.getColumnAt(1).labelFunction = statIcon;
    function statIcon(item
    bject, columnName:String): String{
    if (item[columnName] != undefined) {
    return asIcon;
    else {
    return "";
    I also tried using the toScript() function in CF7 to see if I
    can set a variable equal to the appropriate image and then return
    it in the above script, but this is where I am at a loss.
    <cfif getLastInfo.recordCount GT 0 AND
    Trim(getLastInfo.userType) EQ "tutor">
    <cfset stat = "/images/docArchive.jpg">
    <script language="javascript" type="text/javascript">
    <cfoutput>var #toScript(getLastInfo, "asIcon",
    True)#;</cfoutput>
    </script>
    <cfelseif getLastInfo.viewerID EQ session.tutorID>
    <cfset stat = "/images/docNew.jpg">
    <script language="javascript" type="text/javascript">
    <cfoutput>var #toScript(getLastInfo, "asIcon",
    True)#;</cfoutput>
    </script>
    <cfelse>
    <cfset stat = "Green">
    <script language="javascript" type="text/javascript">
    <cfoutput>var #toScript(getLastInfo, "asIcon",
    True)#;</cfoutput>
    </script>
    </cfif>
    Any ideas on how to get this working is greatly appreciated.
    Thank you in advance.

    Hi Mike,
    To insert multiple queries in a single woorkbook.
    In the Business Explore --> Analyser --> Open the first query and then click on tools button of the BEx add on components and select the option ( Insert Query ).
    Reg's,
    Pratap Reddy Bodimalla.

  • Ghost image for multiple selection in JTree while drag and drop.

    I am unable to create a Ghost image for drag and drop with in the JTree for multiple selection, i got some examples but all are for single selection ,
    Idea of creating buffered image is good , but unable to create it for multiple selection , tried a lot but got weird results.... can any body give me any clue about this , if got any example that will be fantastic.
    Thanks & Regards
    Sandeep Mandori

    sandeep_mandori wrote:
    I am unable to create a Ghost image for drag and drop with in the JTree for multiple selection, i got some examples but all are for single selection ,
    Idea of creating buffered image is good , but unable to create it for multiple selection , tried a lot but got weird results.... can any body give me any clue about this , if got any example that will be fantastic.
    Thanks & Regards
    Sandeep MandoriTry this:
        private TreePath[] dragPath;
        private BufferedImage[] image;
        private void createDragImage(JTree tree) {
            if (dragPath != null) {
                try {
                    image = new BufferedImage[dragPath.length];
                    for (int i = 0; i < dragPath.length; i++) {
                        Rectangle pathBounds = tree.getPathBounds(dragPath);
    TreeCellRenderer r = tree.getCellRenderer();
    DefaultTreeModel m = (DefaultTreeModel)tree.getModel();
    boolean nIsLeaf = m.isLeaf(dragPath[i].getLastPathComponent());
    MutableTreeNode draggedNode = (MutableTreeNode) dragPath[i].getLastPathComponent();
    JComponent lbl = (JComponent)r.getTreeCellRendererComponent(tree, draggedNode, false ,
    tree.isExpanded(dragPath[i]),nIsLeaf, 0,false);
    lbl.setBounds(pathBounds);
    BufferedImage img = new BufferedImage(lbl.getWidth(), lbl.getHeight(),
    BufferedImage.TYPE_INT_ARGB_PRE);
    Graphics2D graphics = img.createGraphics();
    graphics.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f));
    lbl.setOpaque(false);
    lbl.paint(graphics);
    graphics.dispose();
    image[i] = img;
    } catch (RuntimeException re) {}

  • Mapping from File to IDoc with multiple Idocs and multiple line items?

    Hi All,
    Need some help with mapping, requirement as below: I have a flat file with multiple records, need to create multiple idocs per each separate order in flat file with as many line items.
    Order_1 field-1 field-2 field-3 field-4
    Order_1 field-1 field-2 field-3 field-4
    Order_2 field-1 field-2 field-3 field-4
    Order_2 field-1 field-2 field-3 field-4
    Order_3 field-1 field-2 field-3 field-4
    Order_3 field-1 field-2 field-3 field-4
    I have imported IDoc changed to 1:Unbounded, able to create multiple Idocs based on separate order from flat file.
    Order_No - removeContexts - splitByValue(ValueChanged) - collapseContexts - exists - creatIf - IDOC
    Now I am having hard time creating a line item segment E1EDP01. I want to have Idoc created below way:
    IDoc-1 (Order_1)
    E1EDP01
    E1EDP01
    IDoc-2 (Order_2)
    E1EDP01
    E1EDP01
    IDoc-3 (Order_3)
    E1EDP01
    E1EDP01
    I am getting multiple IDocs created. Please help me to create mutlieple line items under each Idoc. Please be speficic about the node funtions to be used, because I tried many times with different combinations, didn't work.
    Regards,
    N@v!n

    Hi Navin,
    Create your source structure like below
    <Order>1 to unbounded
        <Order_No>
        <field1>
        <field2>
        <field3>
        <field4>
    </oder>
    to create mutiple IDocs based on order number,use below logic
    Order_No-->removecontexts--->sort--->splitbyvalue(Valuechange)--->collapsecontext-->Idoc
    use below logic for E1EDPO1,
    Order----->removecontexts------>
                                                                                    formatByexample------>E1EDP01
    Order_No-->removecontexts--->sort--->splitbyvalue(Valuechange)-------->
    try above logic and let me know if you any issues.
    Regards,
    Raj

  • 30" HD Apple Monitor leaving ghost images and vertical lines

    I have a Mac Pro Gen 1 with ati 5770 HD video card runing Snow Leopard. My 30" HD Apple Monitor will flicker and leave verticle lines and perstent ghost images from closed windows, even during shut down.  Some times it will flicker back to normal, but then it will flicker back to leaving verticle lines and ghost images.  I have tried using a different video card, same issue, nothing changes.  I have tried instaling new video drivers and using old ones. I have been using the ati 5770 HD for months now without any issues.  How do I fix this?

    If two different cards produce the same results then I would think its your 30" display which is failing.
    Update:
    I just noticed in your sig you are using 10.6.8.  There are some threads about video problems (flickering, not sure about vertical lines) with 10.6.8 (google "10.6.8 flickering site:discussions.apple.com").  So if you boot from your installer dvd which presumably has an older version of OSX (10.6.4 maybe?) do you still see the display problems?
    Another thought - would an smc and pram reset affect anything?  You might give it a try too.

  • How to decrease PDF file size without losing quality of images and vector lines?

    I have several ai files that I saved as PDFs. Now I'm having problem with the size of this combine files. Can some one assist me with the proper way on decreasing file size without losing quality.
    Thank you.

    I am having the same problem with a different file that's in a different format mentioned above. I'm trying to convert a ".srf" file and turn it into a ".pdf." I was successful doing this but my image, once in a .pdf was also pixilated.
    I thought if I convert my ".srf" file to a ".jpeg" first, then bring this newly created ".jpeg" into a ".pdf," I would have more luck. But unfortunately the free download I got on my computer that's supposed to convert any file to any file, CANNOT convert ".srf" files to ANYTHING!
    Does anyone have any ideas? Or any specific programs I should get?
    Thanks!

  • Setting the value of a single attribute for multiple line items

    Hi all,
    I am working on a Web Dynpro application, I have created this applicaion for an accounting document so it has header data and multiple line item data. As per the requirement I have to put the following logic:
    1. When a user enters a value in the field KBLNR on the line item, all the other fields like cost centerm fund, functional area should populate from a database table based on the value of the KBLNR. to get this I have put the following code:
    TYPES: BEGIN OF t_kblp,
              fipos     TYPE kblp-fipos,
              kostl     TYPE kostl,
                      END OF t_kblp.
      DATA lv_kblnr TYPE wd_this->element_t_bseg-kblnr.
      DATA: lt_kblp TYPE STANDARD TABLE OF t_kblp,
            wa_kblp LIKE LINE OF lt_kblp,
            lt_bseg              TYPE STANDARD TABLE OF bseg,
            wa_bseg              TYPE bseg.
      DATA lo_nd_t_bseg TYPE REF TO if_wd_context_node.
      DATA lo_el_t_bseg TYPE REF TO if_wd_context_element.
      DATA: ls_t_bseg TYPE wd_this->element_t_bseg,
            lo_api_controller    TYPE REF TO if_wd_controller,
            lo_message_manager   TYPE REF TO if_wd_message_manager,
            lo_nd_tbseg          TYPE REF TO if_wd_context_node,
             lo_el_tbseg          TYPE REF TO if_wd_context_element,
             lt_el_tbseg          TYPE wdr_context_element_set,
             lv_bseg              TYPE bseg.
      lo_nd_t_bseg = wd_context->path_get_node( path = `ZDATA.CHANGING.T_BSEG` ).
      lo_api_controller ?= wd_this->wd_get_api( ).
      CALL METHOD lo_api_controller->get_message_manager
        RECEIVING
          message_manager = lo_message_manager.
      lo_nd_tbseg = wd_context->path_get_node( path = `ZDATA.CHANGING.T_BSEG` ).
      lt_el_tbseg = lo_nd_tbseg->get_elements( ).
      LOOP AT lt_el_tbseg INTO lo_el_tbseg.
        lo_el_tbseg->get_static_attributes(
                               IMPORTING static_attributes = lv_bseg ).
      IF lv_bseg-kblnr NE ' '.
          SELECT belnr
                 fipos
                 kostl
                 PSPNR
                 geber
                 saknr
                 fkber
                 grant_nbr
                 gsber
                 FROM kblp
                 inTO corresponding fields of wa_kblp
                 WHERE belnr = lv_bseg-kblnr and
                      saknr = lv_bseg-saknr.
            ENDSELECT.
    lo_nd_t_bseg = wd_context->path_get_node( path = `ZPRELIMINARY_POSTING.CHANGING.T_BSEG` ).
    * get element via lead selection
            lo_el_t_bseg = lo_nd_t_bseg->get_element( ).
    lo_el_tbseg->set_static_attributes(
                               EXPORTING static_attributes = wa_kblp ).
       CLEAR: lv_bseg, wa_kblp.
      ENDLOOP.
    everything is working fine but now the problem is couple of fields that I have in wa_kblp are with different names in bseg table and hence they are not updating... I tried putting the following logic within the loop :
    lo_el_t_bseg->set_attribute(
        name =  `PROJK`
    value = wa_kblp-pspnr ).
    but it's only setting the value of the first line item and not working for the multiple line items, can you please tell me how can do this?
    Thanks,
    Rajat Garg
    Edited by: rajatg on Jun 24, 2011 5:09 PM

    Hi Chris,
    I tried your code and it worked fine but after I put this code I am getting another issue. within the loop I had a code to make the fields non modifiable on the screen and was working fine but now what's happening is it's making the all the lines uneditable except the one with data on it (which is completely opposite), this is what I have coded:
    LOOP AT lt_el_tbseg INTO lo_el_tbseg.
        lo_el_tbseg->get_static_attributes(
                               IMPORTING static_attributes = lv_bseg ).
    IF lv_bseg-kblnr NE ' '.
      SELECT belnr
                 fipos
                 kostl
                 PSPNR
                 geber
                 saknr
                 fkber
                 grant_nbr
                 gsber
                 FROM kblp
                 inTO corresponding fields of wa_kblp
                 WHERE belnr = lv_bseg-kblnr and
                      saknr = lv_bseg-saknr.
            ENDSELECT.
    move: wa_kblp-belnr to wa_bseg-kblnr,
    wa_kblp-fipos to wa_bseg-fipos,
    wa_kblp-kostl to wa_bseg-kostl,
    wa_kblp-pspnr to wa_bseg-projk,
    wa_kblp-geber to wa_bseg-geber,
    wa_kblp-saknr to wa_bseg-saknr,
    wa_kblp-fkber to wa_bseg-fkber,
    wa_kblp-grant_nbr to wa_bseg-grant_nbr,
    wa_kblp-gsber to wa_bseg-gsber,
    lv_bseg-dmbtr to wa_bseg-dmbtr.
    append wa_bseg to lt_bseg.
    lo_nd_edit_property = wd_context->path_get_node( path = `ZPRELIMINARY_POSTING.CHANGING.T_BSEG.EDIT_PROPERTY` ).
          get element via lead selection
          lo_el_edit_property = lo_nd_edit_property->get_element( ).
          lo_el_edit_property->set_attribute(
            name =  `EDIT_FIELD`
            value = 'ABAP_TRUE' ).
          lo_el_edit_property->set_attribute(
            name =  `EDIT_WBS`
            value = 'ABAP_TRUE' ).
    endif.
    endloop.
    o_nd_t_bseg = wd_context->path_get_node( path = `ZPRELIMINARY_POSTING.CHANGING.T_BSEG` ).
    get element via lead selection
            lo_el_t_bseg = lo_nd_t_bseg->get_element( ).
      CALL METHOD lo_nd_t_bseg->bind_table
        EXPORTING
          new_items            = lt_bseg.
    Can you please see what I am doing it wrong here....

  • ECATT : multiple line itmes

    Hi Gurus,
    i am creating ecatt with TCD recording. My requirement is if i record a sales order with one line item can i use the same ecatt for multiple line items.
    for example if i create a test script z_va01 in this i record a sales order having one line item. For this i created test data and configaration. Can i use same ecatt to create a sales order having multiple line items.
    Thanks in advace
    anil

    Hi Anilkumar,
    I don't think you can use same TCD script for single line item and multiple line item. The reason behind is the line items are part of recording. And their positions get recorded. So data has to match with run time behavior of transaction.
    In SAPGUI recording, record VA01 transaction for multiple line items first. And see whether you get different dynpro for each line item. If so, then you can make them Optional. Now this script can run for both multiple line item as well as single item provided one dynpro for each line item.
    Find the following weblog for SAPGUI recording and making screens optional -
    /people/sapna.modi/blog/2006/04/10/ecatt-scripts-creation--sapgui-mode-part-iii
    /people/sapna.modi/blog/2006/04/18/ecatt-chaining-parameterization-creation-of-test-datatest-configuration-system-data-part-iv
    But my personal experience says not to play much with the recorded scripts in the given scenario. If you can record two different scripts for the different line items, your life will be simpler.
    Hope this helps.
    PS If the answer solves your query, plz close the thread by marking it Solved and rewarding each reply.

  • Images with clean lines show up with steping

    I'm building some site content with flash and having a heck
    of a time with "stepping" or pixelized looking edges on
    very good quality crisp images. How can I stop this from
    happening?
    I have also found this when creating flash galleries through
    Lightroom.
    So I'm guessing it has something to do with either the
    default way flash compresses or handles the image.
    How can I resolve this?
    There must be a way to stop flash from doing this.

    No there is no rotation applied to any images.
    However many of the shots are architectural images and have
    lines which are not 90 or 180 degrees.
    these are the ones that show problems. Jagged edges which are
    not cool and degrade the images
    that are a very large part of the visual user experience.
    Any ideas as to why this is happening and how to fix
    it?

  • How to make an editable bulleted list with multiple lines and custom bullets?

    How do I create an editable bulleted list in Acrobat Pro? I've figured out how to add text fields with multiple lines, and how to add a list box, but I don't see the check box for multiple lines in the list box or how to add bullet points. Can someone please give me step by step instructions? Also is it possible to use custom bullet points?

    Is it a text field or a list box field? The two are not the same...
    The bullets are something that the user will have to enter manually (into a text field, they can only select values in a list-box).
    They can use any unicode character, or special characters if the font used for that field allows for it. You can't use images for the bullets, if that's what you mean.

  • How do you Spread an Image across multiple pages and print?

    I'm trying to create a large poster to be put on a bulletin board. I've mangaed to spread the image across multiple pages but I can't figure how to be able to print the pages have the edges line up successfully after cropping. I've been playing with the bleed settings but can't figure it out. Here a shot of what im working with:
    Im working in CS3 on Mac OS X

    Create your InDesign document at your final size and when you print it out put a check mark in the box for Tile

  • I scanned an image and want to use the image trace tool, but it doesn't pick up all the lines.  Is there a way to darken the lines before using the image trace tool?

    I scanned an image and want to use the image trace tool, but it doesn't pick up all the lines.  Is there a way to darken the lines before using the image trace tool?  Help!

    If the scan is in B&W, then play with the Threshold setting here
    If it's in Color, then you will have to open the scan in a Raster editing software (like Photoshop) and play with the Brightness/Contrast settings to make the lines bolder.

  • Multiple lines of event title and location failed to show for All Day event in SharePoint 2010 Calendar

    I have a calendar with SPD workflow to display multiple lines for Title, Attendees, Location.
    1. Created a custom columne "Breaklines" and set to "Multiple lines of text"
    2. Set Monthly View to display the "Breaklines"
    3. in SPD I created a workflow like this:
    4. On the Calendar page, I used a javascript to remove the <br/>
    <script src="http://code.jquery.com/jquery-1.10.2.min.js"
    type="text/javascript"></script><script
    type="text/javascript">
    function updateCalendarWeekday()
       $('.ms-acal-title').each(function(){
        var str = $(this).html();
        str = str.replace(/&lt;/g,
    "<");
        str = str.replace(/&gt;/g,
    ">");
        $(this).html(str);
    _spBodyOnLoadFunctionNames.push('calendarEventLinkIntercept');
    // hook into the existing SharePoint calendar load function
    function calendarEventLinkIntercept()
       var OldCalendarNotify4a
    = SP.UI.ApplicationPages.CalendarNotify.$4a;
       SP.UI.ApplicationPages.CalendarNotify.$4a
    = function ()
          OldCalendarNotify4a();
          updateCalendarWeekday();
    }</script><style>
    .ms-acal-item
                    HEIGHT:
    60px !important
    .ms-acal-summary-itemrow
                    HEIGHT:
    85px !important
    }</style>
    Everything works fine, except that when the All Day event is checked, the display screwed like this:
    I guess that when the event is All Day Event, the Start Time and End Time is not filled by the user (although they show in the form as 12:00 am -11:59PM), so the top line space is now used to display Title and Location. Since the Top Space for
    Start and End Time is a single line, it displays everything on one line. Plus the script does not act on this space.
    Does anyone know a fix for this problem?
    Thanks for any tips!

    Is there a way to modify the javescript so that it also works in the "start-end time" space?

Maybe you are looking for