Thursday, November 13, 2008

Color a particular row (Table cell renderer)

//TABLE CELL RENDERER(COLOR A PARTICULAR ROW)

/*

@ arnab

*/

tablemodel= new MyDefaultTableModel(
new Object [][] {

},
new String [] {
"Chalan NO","Date","SupplierNo","Name", "DueDate", "TotalAmmount"
}
);
tablebase = new javax.swing.JTable(tablemodel)

{
public Component prepareRenderer(TableCellRenderer renderer,int Index_row, int Index_col) {
Component comp = super.prepareRenderer(renderer, Index_row, Index_col);
//even index, selected or not selected
Calendar cal = Calendar.getInstance();
String dt = cal.getTime().toString();
DateChecker dc =new DateChecker();
if(tablemodel.getValueAt(Index_row,4).toString().compareTo(DateConverter.convertDate(dt))==0)
{

comp.setForeground(Color.DARK_GRAY);

}
else if(dc.dateCheck(tablemodel.getValueAt(Index_row,4).toString(),DateConverter.convertDate(dt)).compareTo("before")==0)
{
comp.setForeground(Color.BLACK);
}

else
{
comp.setForeground(Color.RED);
}
return comp;
}
}

;

tablebase.setModel(
tablemodel
);

jScrollPane1.setViewportView(tablebase);