JTable custom cell renderer for each cell

Hi,
Iam trying to implement a JTable in which each cell in a column can be of a different type. i.e it can be a tree node or plain text. Can someone point me to examples where this has been done.
Iam trying to override getColumnClass but it only takes a column no as parameter. I would like to return a different type depending on the row for which getColumnClass is called. It would help if getColumnClass could take 2 params (row and column). Can someone help.
Cheers,
vidyut

You can override getCellRenderer(int row, int column) of JTable

Similar Messages

  • Setting a cell renderer for a Cell?

    Hi everybody,
    I'm sitting here with a problem: I'm trying to set a Cell renderer for a cell.
    The problem is in all of the examples that i saw till now this was made only with columns.
    Is it possible to set different CellRenderer foor different cells in the same column?

    Hi,
    if you implement your cellRenderer you return the Object you get for all columns but the one you want to be handled im a special way. As you know the row as well you can return sth different for each row.
    Phil

  • A different cell renderer for the root node ??

    Is it possible to use one cell renderer for the root and a different cell renderer for the other nodes ?
    Thanks.

    Well I tried that and it didn't work.I do it without any problems so what how did you do it?
    Hint - in the renderer compare tree.getModel().getRoot() with the value using == .
    >
    Basically I have a checkbox at each node. So, I tried
    setting the checkbox invisible for the root. Hard work! Since you are just wanting to change the rendering rule for the root you should change the renderer.
    >
    But then all the nodes have an invisible
    checkbox.............................

  • How can i apply different color for each cell in jlist component?

    hi guys i need your help and sorry if my english is very bad..guys how can i apply different colors for each cell in jlist component? for example for the first cell i want to apply color blue, for the second cell i want red, etc... i need your answer guys tnx..
    Edited by: ryrene on Mar 21, 2010 12:13 AM

    ryrene wrote:
    hi guys i need your help and sorry if my english is very bad.
    ..guys how can i apply different colors for each cell in jlist component? for example for the first cell i want to apply color blue, for the second cell i want red, etc... i need your answer guys tnx..I'll see your tnx, and raise you dve bmbrs & nplm.

  • Changing scaling factor for each cell in Bex Analyzer

    Hi,
    We have a query with 2 structure (1 structure in rows, 1 in columns). We execute the query with Bex Analyzer in Excel.
    We would like to change the scaling factor for each cell. If we use the function 'Properties' for the active cell (context menu), we can change the scaling factor only for one cell.
    Is it possible to change it for the complete table?
    We use BI 7.0, patch 14.
    Thanks,
    Peter
    Edited by: Péter Egyedi on Jan 25, 2008 5:18 PM

    Have you got the solution for this problem?

  • How to get IAttributeStrand for each Cell in Table

    Hello All,
    I am trying to set the font and size depending upon the user inputs under each cell in the table.
    For Text frame I am able to achieve this by using ITextModel->QueryStrand(). But for Table I am not able to find any function which can allow me to query the Cell Strand and allow to apply the attributes.
    Has anyone been able to achieve the same. If so please do let me know its urgent.
    Thank you all in advance.
    regards
    Farzana.

    Hi,<br /> <br />Thanks for the prompt reply. By the way I forgot to mention that we are using the same in CS3.<br />We tried as you have mentioned in your mail. But we did not find any way to achieve the ITextStoryThread from ICellConent. We tried all possible ways but we always get the Text Frame TextModel.<br />We have used following code to get TextModel for each cell. We get correct startindex and endindex for each cell and also get the valid TextModel Interface. But when we try to find out its length then it returns the whole TextModel length. <br />Thus when we try to apply different attributes for each cell then it applies to whole table. <br />E.g. When we try to apply 12 font size for 1st cell then it also applies to remaining cells.  So we think we are not able to find out correct TextModel for each cell. <br /> <br />Below is our snippet of code on what we tried.<br /> <br />ITableModel::const_iterator iterTable(tableModel->begin());<br />ITableModel::const_iterator end(tableModel->end());<br /> <br />while(iterTable != end) <br />{<br />GridAddress gridAddress = *iterTable; <br />GridID gridid= tableModel->GetGridID(gridAddress);<br /> <br />   InterfacePtr<ITableTextContainer> tableTextContainer(tableModel, UseDefaultIID());<br />   if(tableTextContainer != nil) <br />   {<br />       InterfacePtr<ITextModel> textModel(tableTextContainer->QueryTextModel());<br />       if(textModel != nil) <br />       {<br />          InterfacePtr<ITextStoryThreadDict> textStoryThreadDict(tableModel, UseDefaultIID());<br />          if (textStoryThreadDict != nil) <br />          {<br />              InterfacePtr<ITextStoryThread> textStoryThread(textStoryThreadDict->QueryThread(gridid));<br />              if (textStoryThread != nil)<br />              {<br />                 InterfacePtr<ITextModel> iTextModel(textStoryThread->QueryTextModel());<br />                 if (iTextModel != nil)<br />                 {<br />                      TextIndex startIndx;<br />                      TextIndex endIndx;<br />                      startIndx=textStoryThread->GetTextStart(&endIndx);<br />                 }<br />                 else<br />                     CAlert::ErrorAlert("iTextModel == nil");<br />             }<br />          }<br />       } <br />   }<br />                                     <br />   ++iterTable;    <br /> }<br /><br />Regards,<br />Farzana.

  • JTree as cell renderer for JList

    I have an application that requires to display a list of tree-structured data.
    So I've used JTree a the cell renderer for the JList, and I can see a list of trees with that data in.
    However, the Jtree doesn't respond to Mouse messages, even if I dispatch the to it manually. So the tree is essentially dead.
    Does anybody know how to fix this?

    I'm not sure if they have the same thing for lists though.Yes, it is so - a cellrenderer or celleditor is a component, that is only there during it is used - a cellrenderer is there as long as it needs to paint the contents, a celleditor is there, if an edit-process is invoked and it will get messages as long as the editing process continues - after finishing editing, the component is no longer there - normally the renderer is called after that, to render the new contents into the rectangle of that cell, because the contents in its non-editing state may look other than that from the editor during the editing-state.
    greetings Marsian

  • Different link for each cell on table item

    hello..,
    I have one table item on my WAD template.
    I created Characteristic Structure/Selection for rows and Key Figure Structure/Selection for columns.
    There is a requirement to jump to different report for each cell on that table.
    Is it possible?
    I try to created class "ZCL_MYCLASS" with superclass of "CL_RSR_WWW_MODIFY_TABLE".
    And put some code on HTML as below:
    <P><object>
             <param name="OWNER" value="SAP_BW"/>
             <param name="CMD" value="GET_ITEM"/>
             <param name="NAME" value="TABLE"/>
             <param name="ITEM_CLASS" value="CL_RSR_WWW_ITEM_GRID"/>
             <param name="DATA_PROVIDER" value="DATAPROVIDER"/>
             <param name="MODIFY_CLASS" value="ZCL_MYCLASS"/>
             ITEM:            TABLE
    </object></P>
    For testing purpose, I put coding on CHARACTERISTIC_CELL method:
    if I_CHAVL = 'Revenue'. "This is selection description
    c_cell_content = 'R_e_v_e_n_u_e'.
    endif.
    But, it seems that it doesn't work.
    The question:
    1. How do I create simple MODIFY_CLASS, just for testing purpose that what I modify in class is already correct.
    2. How to debug class on WAD?
    Thanks in advance

    Not statically, but you can do this in code:
    That's a method on the left and a property on the right.
    I don't know if this will work as you expect (it should change the tip strip, but I don't know if it will appear like you want it to), so you can also implement this yourself by having a string indicator which you show and move around using its properties.
    Try to take over the world!

  • BAM : Crosstab : Need to get percentage of row total for each cell

    Hi,
    I am new to BAM. I have a requirement for which I am using crosstab. Basically, I need to show number instances per human task per user. Human Task is the row header, user is the column header, and I am using count(instance id) to fetch the count of instances. I am able to show the sum of values for each row and column, but I also need to show the percentage for each cell(based on row total).
    I do not know if it is possible to fetch the total for further calculations. I believe the calculated field will be processed for each cell, and hence there will be no sum available.
    Also, crosstab does not have a percent of total aggregate function.
    Kindly advise.
    Regards,
    Himanshu

    Hi,
    For constructing summary, COLLECT is very useful.
    1. Create one new internal table STAB having two fields.
       a) licensetype
       b) cnt
    2. Suppose your original internal table is itab.
    Loop at ITAB.
    STAB-licensetype = itab-licensetype.
    STAB-CNT = 1.
    COLLECT STAB.
    EndLoop.
    3. In this way, you will get DISTINCT license types, and their count.
    Hope this helps.
    regards,
    amit m.

  • Table cell Render for one cell

    Hi all
    I am hoping that someone can help me with a cell render for one cell only.
    I am needing to make some cells bold.
    What i was hoping is that there is a way of passing in a row and column number to make that cells font bold?
    Any ideas ??
    I am building a List of accounts that I what to look like this.
    1-0000 Asset |Asset|Balance
    1-1000 Cheque Account |Bank|Balance
    1-2000 Credit Cards |Credit|Balance
    1-2020 Visa |Credit Card|Balance
    1-2030 Master Card |Credit Card|Balance

    Create a renderer like you've done in the past:
    http://forum.java.sun.com/thread.jspa?threadID=679718&start=2
    The renderer knows the row and column you are doing the renderering on so you just need to add a conditional check:
    if (aBoldCell)
    setFont( getFont().deriveFont(...) );
    else
    setFont( table.getFont() );

  • Separate subpixel rendering for each monitor

    Hi,
    is it possible to configure separate subpixel rendering for each monitor? I use a multi monitor setup with 2 additional inverted screens (via xrandr). Each screen has a RGB subpixel mapping. The font rendering on the inverted screens looks odd, because they would need BGR mappings. Thats my guess at least, tested it via http://www.lagom.nl/lcd-test/subpixel.php

    Unfortunately there is no way to have separte subpixel rendering for each monitor.  The library doing the rendering (freetype), would have to know which screen you are on and adjust dynamically.  Plus, suppose you have half of a window on one screen and half on another - it wouldn't know which to choose.
    I would like to be able to do this, too, for my rotated monitor.
    I am sure it is technically possible, but not without a major redesign of how the applications render the fonts.

  • Custom Cell Renderer for JTable

    Help, I'm trying to write a custom renderer for a column of my JTable but can't get it to work.
    Want I want is a cell in that column to be a label with an Icon and text.
    Trying to test with something simple, just changing colors but even that doesn't work. Can anyone see where I've gone wrong.
    table = new JTable(tableModel);
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    table.setShowGrid(false);
    TableColumn tc = table.getColumnModel().getColumn(0);
    tc.setCellRenderer(new DefaultTableCellRenderer() {
       public Component getTableCellRendererComponent(JTable table,
                                                   Object value,
                                                   boolean isSelected,
                                                   boolean hasFocus,
                                                   int row,
                                                   int column)
             JLabel label = (JLabel)
                super.getTableCellRendererComponent
                   (table, value, isSelected, hasFocus, row, column);
                label.setForeground(Color.red);
                label.setBackground(Color.black);
                System.out.println("Object: "+ value);
                return label;
    });Thanks,
    Derek

    Hi
    For colors try :
    all your code
    but where you call super.getTableCellRendererComponent(......
    do only setText(value.toString());
    I supose it is Ok just for changing the colors. If you want render
    an Icon plus some text you can put at your model a JLabel and at this
    render do
    setText((JLabel)value.getText());
    setIcon((JLabel)value.getIcon());
    inside a try/catch clause becasue you can put other kind of object at
    model level
    Or pass instances of an special Class with Icon/Text with publics members set/get to acces to text/icon.
    Hope this help

  • Custom Cell Renderer for JList

    I'm getting some strange behaviour from my custom cell renderer.
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.border.*;
    public class TestRenderer implements ListCellRenderer {
      private JPanel jpCell = new JPanel();
      public Component getListCellRendererComponent
          (JList list, Object value, int index, boolean isSelected,
           boolean cellHasFocus) {
        jpCell.add(new JLabel("Render"));
        return jpCell;
    import javax.swing.*;
    import java.awt.*;
    public class TestPanel extends JFrame {
         public TestPanel() {
              JList jlst = new JList(new String[]{"Value", "Value2", "Value3"});
              jlst.setCellRenderer(new TestRenderer());
              JPanel panel = new JPanel();
              panel.add(jlst);
              add(panel);
         public static void main(String[] args) {
              TestPanel frame = new TestPanel();
              frame.setSize(300, 300);
              frame.setLocationRelativeTo(null);
              frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
              frame.setVisible(true);
    }As you will see the renderer displays the string several times in each cell depending on which layout manager I use. However, if I replace the JPanel with a JLabel and set the String as text on the label the String is only printed once per cell. I can't see to find the reason for this.
    Edited by: 811488 on 18-Nov-2010 09:44
    Edited by: 811488 on 18-Nov-2010 09:45
    Edited by: 811488 on 18-Nov-2010 09:45

    So getListCellRendererComponent returns a component whose paintComponent method is called with the Graphics object of the JList Yes, except that the paint(...) method is called. There is a difference. paintComponent() only paints the component. In the case of a JPanel you would get a boring gray colored component. paint() will paint the component and its children and the Border of the component as well. So you get a much more exiting component.
    Read the section from the Swng tutorial on [url http://download.oracle.com/javase/tutorial/uiswing/painting/index.html]Custom Painting for more information.
    So the state of the cell is not the state of the cell Renderer Component meaning the image rendered onto the cell only reflects the state of the Cell Renderer Component at the time the cell was rendered.Yes which is why this method should be efficient because repainting is consistently being done for all the cells. For example every time row selection changes multiple rows need to be repainted. Think of this same concept when you use a JTable which also contains multiple columns for each row.
    That is why you should not be adding/removing components in the rendering code.
    It makes sense except that if this was the case the first version of the Render that I posted should have been rendered first with one "Render" then two then three, shouldn't it?Yes, except that you can't control when or how often the rendering is done. Add the following to the renderer:
    System.out.println(index + " : " + jpCell.getComponentCount());You will see that rendering is done multiple times. The JList tries to determine its preferred width. To do this it loops through all the items in the list and invokes the renderer to get the width of the largest renderer. Well the largest width is the last renderer because 3 labels have been added to the panel. So that width becomes the preferred width of the list. Then the GUI is displayed and the list is painted. Every time the renderer is called an new label is added, but after the 3rd label there is no room to paint the label so it is truncated.
    Change your code to the following:
    //add(panel);
    add(jlst);Now change the width of the frame to see what happens.
    Given all the help you have received, I expect to see many "helpfull answers" selected as well as a "correct answer" (if you want help in the future that is).

  • JTable - different editor for each cell?

    I have a JTable where two columns have combo box editors. When the user makes a selection in one combo box, the other combo box's options must change, as its allowable options depend on selection in the other combo box.
    So in short, I need a way of changing the combo box options for ONLY a specific cell, NOT the entire column. I currently only know how to do this for a whole column:
    // first put stuff in myComboBox, and then...
    myJTable.getColumnModel().getColumn().setCellEditor( new DefaultCellEditor( myComboBox ) );
    Is there any way to change the values in the combo box of a specific cell, rather than the entire column?
    I apologize if this is a newbish question... I am fairly new to Swing, but I didn't see anything addressing this in the documentation.
    -Vern

    The solution is like the one I gave you in one of
    your previous postings. In that posting you wanted a
    renderer for a specific cell. In this posting you
    want a editor for a specific cell. The solution is
    the same, only the method name changes.Okay, thanks. Sorry if it seems like I'm a slow learner. ;-)
    -Vern

  • Various cell renders for cells (not for columns only) in JTable

    Hello, I need to create a property list with some various values (strings, colors, booleans) just like in Netbeans do. I will use JTable component, but I found I cannot have various cell editors for cells. In JTable cell editors can be only changed for COLUMNS. What sould I do?
    ps - is there any JPropertyPanel avaiable for free on the web?

    I had a similar problem recently whilst working on a Swing GUI designer (you're not doing the same are you? ;o). Presuming you already know how to create TableCellEditors you can use a very simple hack to achieve your goal.
    Either extend the JTable class and override the getCellEditor(int row, int column) method, or override the same method when constructing the JTable (this is what I did). You would need to write something like:
    JTable myTable = new JTable(){
        public TableCellEditor getCellEditor(int row, int column) {
            TableModel model = getModel();
            Object data = model.getValueAt(row, column);
            return getDefaultEditor(data.getClass());
    }The getCellEditor method is called by JTable whenever a cell is to edited, normally it would check to see if the TableColumn has an editor associated with it and return that, if there wasn't one it would get the class of data for the column and return the default editor for that type of class, which is similar to what it does here except it returns the default editor for the class of an individual item of datum.
    Now all you need to do is associate your TableCellEditors with the class types they are to edit with the setDefaultEditor(Class c, TableCellEditor editor) method of JTable. If, for instance, you had an editor for the Color class you would have a line something like:
    myTable.setDefaultEditor(Color.class, new ColorCellEditor());Good luck, and I hope this helps.
    MS.

Maybe you are looking for

  • ADF 11g can not select and copy data from cell of readonly table in IE

    hi, In ADF 11g, when render view object as readonly table with Single RowsSelection, using IE browser can not select and copy data from the cell, but it work in firefox. is it a bug? Edited by: kent2066 on 2009-5-18 上午8:46

  • Javascript error for Inserting Pages from a source

    Below is a script I wrote that isn't functioning properly on my large 200 page document that I need it to. Granted there might be a much easier way to script this, but I'm no expert. I have a 200 page document that needs to be 600 pages, basically ev

  • Questions: 10-keymap.fdi not working // automounting ntfs drives // ++

    Hi there, this time I want to change 100% from windows to linux and i found archlinux to be a really nice system. I like it "the arch way" 1) I followed the beginner's wiki and choose those xf86-input-evdev 2.3.2-1 drivers. I set the 10-keymap.fdi fi

  • Problem with PO InfoUpdate. PB00 + RL01 becomes new PB00

    Hi We are trying har to implement the correct use of conditions on Vendor / Sub-Vendor / PO and so on. But we have one problem. We have added condition RL01 with the value of 20% discount on Sub-Vendor "NDP" The Info Record for Material X and Vendor

  • Guarantees made - Contingent Liabilities

    Hi All, Payment guarantees made created as special gl indicator, this entry should not have any financial impact. It's just a guarantee given (a contingent liability). Therefore, by booking this as a special GL transaction, will the entry reflect in