if you're using the MetalLookAndFeel, the color schemes would normally be changed by calling setCurrentTheme(...). For any LookAndFeel that doesn't provide Theme support a series of put(...) calls to the UIManager may be necessary. Or the LaF may provide some other mechanism for changing default colors. A custom renderer shouldn't figure in applying custom colors for the entire table.
I have to change many features of the table. Some of the cells can be gray and another can be white. Moreover the focus color can be different. This is all configurable via JMenu. It depends on the data in the cells.
After changing color scheme the JTable should take the new color and repaint.
Now I'm even more confused. Where does detecting a focus change on a panel come into it?
For the scenario you describe, I would have the custom renderer class contain a field (array or List) or individual fields for the customized colors, set their new values and call repaint() on the table, all in the ActionListener of the menu.