Change Row Backgroud color in Jtable : ADF Swings

Hi ,
I have developed a ADF Swings Details Form . On Details FORM LOAD if Check Box is TRUE( means selected) i have to change the back ground color of the JTable row and also i have make that row as READ ONLY mode .
Need help.
Regards
Bhanu Prakash

ok i found how to do it
i directly inserted this in the renderer code:
if (row == table.getSelectedRow() && column == table.getSelectedColumn())
cell.setBackground(etc);
(curiously it does not work with "if (isSelected)")
thanks :)

Similar Messages

  • Delete multiple rows in a JTable ADF Swing.

    hi guys,
    Would anyone know tell me how do I delete multiple rows in a JTable ADF Swing?
    JDeveloper.

    Hi,
    I would configure the table for multi row selection. Then get the selected row index, access the iterator in the PageDef file (through the panelBinding reference you have in ADF Swing) and then iterate over the selected row indexes, make an index to become the current row and call remove() on it
    Frank

  • Change row's color in report painter

    Hi all!!!
    anybody knows how change row's color in report painter,
    for example
    number   name        |  money          
       7020   payments1 | 100.00   
       7021   payments2 | 200.00
        summary            |  300.00
    change color of row  "7020   payments1" and "7020   payments1"
    Regards!!!

    Hi,
    For it, first place the cursor on the row and choose Formatting > Row. In the next dialog box, select a color (for totals, subtotals, inserted rows, or for emphasis). The system assigns a color based on the selection you make here.
    Regards,
    SDNer

  • How to programmatically change the cell color of an ADF table ?

    Hi all,
    I have an ADF table with some fields on it. Depending on the value of a field named, say, "F1", I would like to change its background color.
    So far I can change the field color with this EL expression inside the InlineStyle table column property:
    font-size:medium; background-color:#{viewScope.myBean.setColor};
    where setColor is a bean function, in where I access the field "F1" via binding, parse its value, and return the right value - so far, so good.
    The bad thing is, the InlineStyle affects that field in all the rows of the table, while I would like to change only the field in the rows, which have that specific value in it.
    So for example having the rows:
    F1
    abc#1 ----> currently selected row
    cde#2
    efg#3
    I want to change the background color to all the F1 fields which have a "1" after the '#' and let the other "F1" row cells background color stay unchanged.
    But as you can imagine, the InlineStyle affect the "F1" background color in all the rows (assuming that the first row of the table is selected).
    So the question: how to access a single cell of a row in an ADF table, and programmatically change its background color ?
    So far I can iterate through the ADF table with:
    BindingContext bindingctx = BindingContext.getCurrent();
    BindingContainer bindings = bindingctx.getCurrentBindingsEntry();
    DCBindingContainer bindingsImpl = (DCBindingContainer) bindings;
    DCIteratorBinding dciter = bindingsImpl.findIteratorBinding("aTableIterator");//access the iterator by its ID value in the PageDef file
    RowSetIterator rsi = dciter.getRowSetIterator();
    System.out.println("rsi getrowcount = " rsi.getRowCount());+
    Row row = null;
    +if (rsi.getRowCount() > 0) {+
    row = rsi.getCurrentRow();
    System.out.println("row attr = " Arrays.toString(row.getAttributeNames()));+
    System.out.println("class : " row.getAttribute("F1").getClass().toString());+
    +}+
    +while (rsi.hasNext()) {+
    row = rsi.next();
    System.out.println("row attr = " Arrays.toString(row.getAttributeNames()));+
    +}+
    Regards,
    Sergio.

    Hi,
    I mean a specific cell within a row.
    Here are two pictures that show an ADF table with two rows and some fields on it:
    https://skydrive.live.com/?cid=7D3084D8BF755808&id=7D3084D8BF755808!107&sc=documents#cid=7D3084D8BF755808&id=7D3084D8BF755808!107&sc=documents
    bild_A is what I have, bild_B is what I would like. Note that:
    in bild_A the first row contain a yellow background color for the field F4 and an orange background color for the field F5. This is correct, because F4 has an "1" at the end of its string value, and F5 has a "3" at the end. So far so good.
    But the second row (again, bild_A) has also the fields F4 with yellow background color, and the field F5 with orange background color, even if the value in both fields is 0.
    What is should be, is shown in bild_B.
    The problem is that the solution provided affects all the cells of the column, while I need to change the background color of a single cell, and leave the other unchanged (see bild_B).
    I hope that clarify a bit :)
    Sergio.

  • Change row text color if box checked

    Hi. I've setup my form in a table and if a checkbox is
    ticked, the background color changes along the whole row. Trouble
    is, the text doesn't stand out after this color change so I also
    need the text color to change from black to white when checked and
    revert to black if unchecked. Anyone know how I would do this?
    Here's the code I'm using to change the background color. Can I
    modify it or do I need new code? I'm still learning :)
    <script type="text/javascript">
    function change(obj) {
    var tr=obj.parentNode.parentNode;
    if(obj.checked) {
    tr.className+=' pink';
    else {
    tr.className=tr.className.replace(' pink', '');
    clickCh();
    .nochange, tr {background-color:white;}
    tr.pink {
    background-color:#7247D1;
    .light {background-color:#D2CAEB;}
    .dark {background-color:#B1AAD7;}
    <tr class="light">
    <td width="68" bgcolor="#000000" class="leftAlign"
    scope="row"> </td>
    <td width="20" bgcolor="7247d1" class="leftAlign"
    scope="row"> </td>
    <td width="21" class="leftAlign"
    scope="row"> </td>
    <td class="leftAlign"
    scope="row">  <strong>
    ProductA</strong> (details)</td>
    <td width="30" class="leftAlign" scope="row"><div
    align="center">20g</div></td>
    <td><input name="input4" onClick="change(this)"
    value="0.80" type="checkbox"></td>
    <td >&pound;0.15</td>
    <td>data1</td>
    <td>data2</td>
    <td>data3</td>
    <td>data4</td>
    <td bgcolor="7247d1"> </td>
    <td bgcolor="#000000"> </td>
    </tr>

    look at focus and keylisteners.

  • WAD - Portal - Changing row background colors

    Hi,
    We are creating web templates and posting to portal 6.0. I would like to know how to change the background colors for the rows for the output of the analysis item. Right now the default colors are grey and white (alternating rows). I did a search in the forum and it appears that there is no straightforward way to do it, with some suggesting we do it directly in the portal. Can someone provide detailed step by step instructions on how to change the background colors for rows for query output.
    Thanks,
    Anita S.

    You can modify the CSS (Cascading Style Sheet) in either Portal or WAD.  If you change it in Portal, it will be global for all reports viewed in the portal.
    For WAD, there is a general template parameter which contains the path to the .CSS file.  This CSS file is located in the Mime Repository (SE80).  Make the change to the css file in the mime repository and you're good to go.
    If you change the Portal CSS file, there is a wizard that can help you define colors for tables and preview them.

  • Change cell's color in jtable when user clicks on it

    Hi everyone,
    i've got a JTable, and would like to change the background of a cell when user selects it
    so i added a mouselistener over my jtable, the mousereleased method looks like this:
              public void mouseReleased(MouseEvent e) {
                   int row = table.rowAtPoint(e.getPoint());
                   int column = table.columnAtPoint(e.getPoint());
                            // help needed
              }as you see, i found the code to get the index of the cell selected, but i don't find any method in JTable class to get the cell component itself, and to alter its background color
    Please notice that the "setSelectionBackground()" in JTable isn't enough, since i would also like to change the color of cells which are not selected when the user select a cell
    how could i do that?
    Thanks in advance!
    edit: i tried the following but it does not work either
              public void mouseReleased(MouseEvent e) {
                   int row = table.rowAtPoint(e.getPoint());
                   int column = table.columnAtPoint(e.getPoint());
                   AbstractTableModel atm = (AbstractTableModel) table.getModel();
                   Component cell = table.getDefaultRenderer(CaseMemoire.class).
                   getTableCellRendererComponent(table, atm.getValueAt(row, column), true, true, row, column);
                   cell.setBackground(Color.MAGENTA);
                   table.updateUI();
              }

    ok i found how to do it
    i directly inserted this in the renderer code:
    if (row == table.getSelectedRow() && column == table.getSelectedColumn())
    cell.setBackground(etc);
    (curiously it does not work with "if (isSelected)")
    thanks :)

  • Change the cell color in JTable?

    Hi all,
    I'm trying to do that, the user make a selection of multiple cells in a table. And when it press enter, I whant to change the color of the selected cells.(the isEditable of JTable it's already overwritten to return always false)
    I have already make my own CellRender, my problem is, because the cell remains unchanged the render are not called...
    Thanks,
    NeuralC

    You need not access this function when you want to paint a cell. This is how your code while instantiating the table should typically look like.
    JTable table = new JTable(model);
    table.setDefaultRenderer(Object.class,new MyCellRenderer());
    and
    public class MyTableCellRenderer extends JLabel implements TableCellRenderer
    public MyTableCellRenderer
    setOpaque(true);
    setBackground(Color.white);
    public Component getTable.....(JTable table,Object value,......) //fill all these things
    setFont(table.getFont());
    if(value != null && isSelected)
    setHorizontalAlignment(SwingConstants.RIGHT);
    setText(value);
    return this;
    When you set MyTableCellRenderer to the table, the getTableCellRedererComponent method is called automatically to renderer the cells and only the selected cells will be hightlighted in blue color. For a better understanding of how tables work and their corresponding Renderers work, you might have to read the tutorial on JTable. Do that as that would help you in removing all the confusion.
    Thanks,
    Kalyan

  • Change row background color or banding

    Can I do such things in my table? I'm working with a table which formatted subtotal. Now, I want to change the row color of each subtotal row. However, I can't find any attribute of row to do it.
    eg.
    ID
    10
    Dept1 100
    Dept2 100
    Subtotal 200
    20
    Dept3 200
    Dept4 300
    Subtotal 500
    Total 700
    Thanks in advance,

    Thanks Frank,
    I'm using OA Components Page in Oracle Application. It's .XML extension(I think you know it). I tried some ways to change the row color such as set row attribute, and change rowFormats of table like this
    processRequest
         tableBean.prepareForRendering(pageContext);
         //now get a handle on the array of Row Format Dictionaries
         DataObjectList myRowFormats = tableBean.getRowFormats();
         if(myRowFormats = null){
              DictionaryData[] myRowFormats = new DictionaryData[size];     
         //set the BANDING_SHADE_DARK property to TRUE for the second row
         //which corresponds to index 1 in the DictionaryData array
         rowFormats[1] = new DictionaryData(BANDING_SHADE_DARK,                          
    Boolean.TRUE);
         //Modify any other row formats
         tableBean.setRowsFormats(rowFormats);
    I found this on OAF Developer's Guide but it's not work out. Do you have any suggestion about it? Thanks for your time on this.

  • How to change the backgroud of Flex label

    Hey friend;
    I am trying to change the backgroud color of the flex label
    control but there seems to be no property called background in it.
    I tried it using a css class too but fail.
    Can some one kindly tell me how change the
    background color of the label control.
    Thanks in advance
    Kiran

    I'm afraid you can't, without extending the Label.
    You'll need to use a textArea, or create a custom control,
    probably by extending Canvas. This is not hard at all.
    Tracy

  • Change Safari background color

    Hello everyone,
    I've some trouble with my eyes and therefor I like to change the backgroud color of the browsing tabs. I use Firefox now but is this also possible with Safari?
    Thank you!

    Hi,
    If you still need help with this...
    Not sure if Safari can be modified to change the background color of tabs but open System Preferences then select Universal Access.
    Select the Seeing tab. Under Display select: *White on black*
    You can use the slider for contrast.
    Maybe that will help.
    Carolyn

  • Changing background color in JTable, only changes one row at a time...

    I'm trying to change the color of rows when the 5th column meets certain criteria. I think I'm very close, but I've hit a wall.
    What's happening is the row will change color as intended when the text in the 5th column is "KEY WORD", but when I type "KEY WORD" in a different column it will set the first row back to the regular colors. I can easily see why it's doing this, everytime something is changed it rerenders every cell, and the listener only checks the cell that was just changed if it met the "KEY WORD" condition, so it sets every cell (including the previous row that still meets the condition) to the normal colors. I can't come up with a good approach to changing the color for ALL rows that meet the condition. Any help would be appreciated.
    In this part of the CellRenderer:
            if (isSelected)
                color = Color.red;
            else
                color = Color.blue;
            if (hasFocus)
                color = Color.yellow;
            //row that meets special conditions
            if(row == specRow && col == specCol)
                color = color.white; I was thinking an approach would be to set them to their current color except for the one that meets special conditions, but the two problems with that are I can't figure out how to getColor() from the table, and I'm not sure how I would initially set the colors.
    Here's the rest of the relevant code:
        public void tableChanged(TableModelEvent e)
            int firstRow = e.getFirstRow();
            int lastRow  = e.getLastRow();
            int colIndex = e.getColumn();
            if(colIndex == 4)
                String value = (String)centerTable.getValueAt(firstRow, colIndex);
                // check for our special selection criteria
                if(value.equals("KEY WORD"))
                    for(int j = 0; j < centerTable.getColumnCount(); j++)
                        CellRenderer renderer =
                            (CellRenderer)centerTable.getCellRenderer(firstRow, j);
                        renderer.setSpecialSelection(firstRow, j);
    import javax.swing.table.*;
    import javax.swing.*;
    import java.awt.Component;
    import java.awt.Color;
    public class CellRenderer extends DefaultTableCellRenderer
        int specRow, specCol;
        public CellRenderer()
            specRow = -1;
            specCol = -1;
        public Component getTableCellRendererComponent(JTable table,
                                                       Object value,
                                                       boolean isSelected,
                                                       boolean hasFocus,
                                                       int row, int col)
            setHorizontalAlignment(JLabel.CENTER);
            Color color = Color.green;
            if (isSelected)
                color = Color.red;
            else
                color = Color.blue;
            if (hasFocus)
                color = Color.yellow;
            if(row == specRow && col == specCol)
                color = color.white;
            //setForeground(color);
            setBackground(color);
            setText((String)value);
            return this;
        public void setSpecialSelection(int row, int col)
            specRow = row;
            specCol = col;
    }If I'm still stuck and more of my code is needed, I'll put together a smaller program that will isolate the problem tomorrow.

    That worked perfectly for what I was trying to do, but I've run into another problem. I'd like to change the row height when the conditions are met. What I discovered is that this creates an infinite loop since the resizing triggers the renderer, which resizes the row again, etc,. What would be the proper way to do this?
    Here's the modified code from the program given in the link. All I did was declare the table for the class, and modify the if so I could add the "table.setRowHeight(row, 30);" line.
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.table.*;
    import javax.swing.border.*;
    public class TableRowRenderingTip extends JPanel
        JTable table;
        public TableRowRenderingTip()
            Object[] columnNames = {"Type", "Company", "Shares", "Price", "Boolean"};
            Object[][] data =
                {"Buy", "IBM", new Integer(1000), new Double(80.5), Boolean.TRUE},
                {"Sell", "Dell", new Integer(2000), new Double(6.25), Boolean.FALSE},
                {"Short Sell", "Apple", new Integer(3000), new Double(7.35), Boolean.TRUE},
                {"Buy", "MicroSoft", new Integer(4000), new Double(27.50), Boolean.FALSE},
                {"Short Sell", "Cisco", new Integer(5000), new Double(20), Boolean.TRUE}
            DefaultTableModel model = new DefaultTableModel(data, columnNames)
                public Class getColumnClass(int column)
                    return getValueAt(0, column).getClass();
            JTabbedPane tabbedPane = new JTabbedPane();
            tabbedPane.addTab("Alternating", createAlternating(model));
            tabbedPane.addTab("Border", createBorder(model));
            tabbedPane.addTab("Data", createData(model));
            add( tabbedPane );
        private JComponent createAlternating(DefaultTableModel model)
            JTable table = new JTable( model )
                public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
                    Component c = super.prepareRenderer(renderer, row, column);
                    //  Alternate row color
                    if (!isRowSelected(row))
                        c.setBackground(row % 2 == 0 ? getBackground() : Color.LIGHT_GRAY);
                    return c;
            table.setPreferredScrollableViewportSize(table.getPreferredSize());
            table.changeSelection(0, 0, false, false);
            return new JScrollPane( table );
        private JComponent createBorder(DefaultTableModel model)
            JTable table = new JTable( model )
                private Border outside = new MatteBorder(1, 0, 1, 0, Color.RED);
                private Border inside = new EmptyBorder(0, 1, 0, 1);
                private Border highlight = new CompoundBorder(outside, inside);
                public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
                    Component c = super.prepareRenderer(renderer, row, column);
                    JComponent jc = (JComponent)c;
                    // Add a border to the selected row
                    if (isRowSelected(row))
                        jc.setBorder( highlight );
                    return c;
            table.setPreferredScrollableViewportSize(table.getPreferredSize());
            table.changeSelection(0, 0, false, false);
            return new JScrollPane( table );
        public JComponent createData(DefaultTableModel model)
            table = new JTable( model )
                public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
                    Component c = super.prepareRenderer(renderer, row, column);
                    //  Color row based on a cell value
                    if (!isRowSelected(row))
                        c.setBackground(getBackground());
                        String type = (String)getModel().getValueAt(row, 0);
                        if ("Buy".equals(type)) {
                            table.setRowHeight(row, 30);
                            c.setBackground(Color.GREEN);
                        if ("Sell".equals(type)) c.setBackground(Color.YELLOW);
                    return c;
            table.setPreferredScrollableViewportSize(table.getPreferredSize());
            table.changeSelection(0, 0, false, false);
            return new JScrollPane( table );
        public static void main(String[] args)
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    createAndShowGUI();
        public static void createAndShowGUI()
            JFrame.setDefaultLookAndFeelDecorated(true);
            JFrame frame = new JFrame("Table Row Rendering");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.add( new TableRowRenderingTip() );
            frame.pack();
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
    }Edited by: scavok on Apr 26, 2010 6:43 PM

  • How to chang the row's color in the Jtable?

    I have a table and many rows,I want chang the rows color,like row one's color is red,row tow's color is write,row three's color is green.How can do it? And if i want chang row 3,coloum 2's color.How can do it?
    thanks.

    hi,
    I use jdbtable to view data,I want them to chang row color when some cells equal the value.But interface getTableCellRendererComponent not run.I don't know why!
    jdbtable is extend jtable ,it made in borland jbuilder.
    //1 class
    package errorreport;
    import java.awt.Component;
    import java.awt.Color;
    import javax.swing.table.DefaultTableCellRenderer;
    import com.borland.dbswing.*;
    public class rowcolor extends DefaultTableCellRenderer {
    public Component getTableCellRendererComponent
    (JdbTable table, Object value, boolean isSelected,
    boolean hasFocus, int row, int column)
    Component cell = super.getTableCellRendererComponent
    (table, value, isSelected, hasFocus, row, column);
    int iColcount = 0;
    iColcount = table.getColumnCount();
    if( value instanceof String )
    String strAlmlev = (String)value;
    if(strAlmlev.trim().equals("C1"))
    cell.setBackground( Color.red );
    // You can also customize the Font and Foreground this way
    // cell.setForeground();
    // cell.setFont();
    else
    if(strAlmlev.trim().equals("C2"))
    cell.setBackground( Color.orange );
    else
    if(strAlmlev.trim().equals("C3"))
    cell.setBackground( Color.yellow );
    else
    if(strAlmlev.trim().equals("ERR"))
    cell.setBackground( Color.green );
    return cell;
    //2 class
    JdbTable jdbTable2 = new JdbTable();
    TableCellRenderer renderer = new rowcolor();
    try
    jdbTable2.setDefaultRenderer( Class.forName( "java.lang.String" ), renderer );
    catch( ClassNotFoundException ex )
    System.exit( 0 );
    thanks

  • Change the background color of selected row in adf table

    Hi,
    Can somebody guide me in changing the background color of a row when its being selected. In my ADF table, one of the column is of type Command Link. So whenever i click this command link on any particular row that complete row color should change as an indication of that row being selected.
    Please guide me to do this. I referred to other forum posts, but they couldnt meet my need.
    Thanks
    ri

    Hi Frank,
    you're right. This should work. But the result is not perfect from my point of view.
    I use
    <af:table ...>
      <af:column ...>
        <af:outputText value="#{row.col1}" inlineStyle="#{row.mystyle}"/>
      </af:column>
    </af:table>and I get e.g. this in HTML:
    <table ...>
      <tr>
        <td class="af_column_cell-text OraTableBorder1111"><span style="font-weight:bold;">qqq</span></td>
      </tr>
    </table>while I would prefer to get somethig like this:
    <table ...>
      <tr>
        <td style="font-weight:bold;"><span>qqq</span></td>
      </tr>
    </table>, which looks much smarter. Is it possible?
    Thanks,
    Alexandre.

  • How to change text in header of ADF Swing JTable?

    I need to change texts in ADF Swing JTable header.
    any clue?
    thanks
    Branislav

    Hi,
    how do you need to change it? Dynamically or static. If static then - assuming ADF BC is the underlying model - you can set the label hint to override the default column naming. If not using BC, you can set the label in the ADF binding as well.
    Frank

Maybe you are looking for

  • Music shows in my library in Itunes but will not update on Ipod?

    I had to copy my music from my ipod to a new computer. Followed the steps that I located on an apple discussion. Reloaded and then tried to connect my ipod knowning that I would lose my playlists. Instead, it wiped out my entire ipod. How do I reload

  • My Laptop Audio is NOT Working

    Model Name and Number: HP Notebook dv6t-A1U59AV I was listening to music, paused for a second, and continued it a bit later and it played but no audio came out of my headphones. I proceeded to use my speakers instead and recieved the same result. Nex

  • Java Studio Creator error

    Hi, i'm trying to use annotation in my code, but the compiler show following error message: (try -source 1.5 to enable annotations) my jdk defaullt is jdk 1.5 help.

  • Changing default monitor refresh rate

    Hello- I have just installed x86 Solaris8 on my system at home. I have a TNT2 Ultra card and I am using the default Nvidia TNT2 drivers included with the install on a Hitachi Superscan Monitor. I am capable of displaying the Solaris CDE at 1600x1200

  • 3rd Party SIP phone to CUCM via SIP Proxy

    Hi all, This is the scenario i'm currently working on : 3rd party SIP phone <--> Internet <--> SIP Proxy <--> LAN <--> CUCM The SIP proxy basically terminates everything (REGISTER, INVITE, etc), including the RTP stream. I can register the 3rd party