Swing JTable - sélectionner la cellule sélectionnée dans une couleur différente du reste de la ligne sélectionnée?

J'ai une base de swing JTable et de l'exigence, c'est que quand on clique sur une cellule, l'ensemble de la ligne doit être mis en évidence, et aussi que la cellule qui a été cliqué devrait être d'une couleur différente du reste de la ligne en surbrillance.

Actuellement, j'ai isRowSelectionAllowed comme vrai

J'ai essayé en utilisant un custom TableCellRenderer qui est comme suit:

public class CustomTableCellRenderer extends DefaultTableCellRenderer
{

public static final DefaultTableCellRenderer    DEFAULT_RENDERER    = new DefaultTableCellRenderer();
    @Override
  public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    Component c = DEFAULT_RENDERER.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

    if (isSelected) {
        c.setBackground(Color.red);
    }
    else {
        c.setForeground(Color.black);
        c.setBackground(Color.white);
    }
    return c;   
  }     
}

Mais cela ne semble pas fonctionner (l'ensemble de la ligne surlignée en rouge).

J'ai aussi essayé le réglage de l'UIManager propriété comme suit:

UIManager.put("Table.focusCellBackground", 
         new javax.swing.plaf.ColorUIResource (Color.red));

Mais cela ne semble pas fonctionner non plus (même si, quand j'ai essayé de fixer un cadre à l'aide

UIManager.put("Table.focusCellHighlightBorder", 
         new BorderUIResource.LineBorderUIResource(Color.red)); 

qui a bien fonctionné)

Pourriez-vous veuillez donner des suggestions de ce que je pourrais faire?

OriginalL'auteur Madhavan Kulukkallur | 2011-07-28