|
Following is a prepare Renderer method which I am writing after
subclassing the JTable class. But this doesn't work properly. When I select the
row only at that time it shows the proper color.
public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { Component component = super.prepareRenderer(renderer, row, column); Long longTime =
(Long) logMessageTableModel.getValueAt(row, 4);
Object value = logMessageTableModel.getValueAt(row, column); if (null !=
longTime && ((System.currentTimeMillis() - longTime.longValue()) <=
highlightDuration))
{
component.setBackground(Color.cyan); } else if (1 == column && null != value) { String strValue = value.toString(); if
(strValue.equalsIgnoreCase("FATAL"))
{
component.setBackground(Color.red); } else { component.setBackground(null); } } else { component.setBackground(null); } return
component;
} Following is the code where I have created my Table
Cell renderer. This works fine. In this I need to register the renderer for all
the colums.
JTable logMessageTable = new
JTable();
ColoredTableCellRenderer coloredTableCellRenderer = new
ColoredTableCellRenderer();
logMessageTable.getColumn(VTBrokerClient.logMessageTableColumnNames[0]).setCellRenderer(coloredTableCellRenderer); logMessageTable.getColumn(VTBrokerClient.logMessageTableColumnNames[1]).setCellRenderer(coloredTableCellRenderer); logMessageTable.getColumn(VTBrokerClient.logMessageTableColumnNames[2]).setCellRenderer(coloredTableCellRenderer); logMessageTable.getColumn(VTBrokerClient.logMessageTableColumnNames[3]).setCellRenderer(coloredTableCellRenderer); class ColoredTableCellRenderer extends
DefaultTableCellRenderer {
public Component getTableCellRendererComponent (JTable table, Object value, boolean selected, boolean focused, int row, int column) { Long longTime = (Long)
logMessageTableModel.getValueAt(row, 4);
if (null != longTime &&
((System.currentTimeMillis() - longTime.longValue()) <= highlightDuration))
{
setBackground(Color.cyan); } else if (1 == column && null != value) { String strValue = value.toString(); if
(strValue.equalsIgnoreCase("FATAL"))
{
setBackground(Color.red); } else { setBackground(null); } } else { setBackground(null); } super.getTableCellRendererComponent(table,
value, selected, focused, row, column);
return
this;
} } "The information in this e-mail, and any attachment therein, is confidential and for use by the addressee only. If you are not the intended recipient, please return the e-mail to the sender and delete it from your computer. Although The Bank of New York attempts to sweep e-mail and attachments for viruses, it does not guarantee that either are virus-free and accepts no liability for any damage sustained as a result of viruses." |
Title: Message
- JTable row renderer Bhangale, Bhushan
- Re: JTable row renderer Vikram Kumar
- RE: JTable row renderer Dave Wathen
- RE: JTable row renderer Bhangale, Bhushan
- RE: JTable row renderer Bhangale, Bhushan
- RE: JTable row renderer Krishnakumar CS
- RE: JTable row renderer Bhangale, Bhushan
- Re: JTable row renderer Greg Munt
- RE: JTable row renderer Bhangale, Bhushan
- RE: JTable row renderer Krishnakumar CS
- Re: JTable row renderer Bhangale, Bhushan
- RE: JTable row renderer Krishnakumar CS
- JTable refreshing - Urgent rajeswari_pj
