Swing JTable - Highlight markierte Zelle in einer anderen Farbe vom rest der ausgewählten Zeile?

Habe ich eine grundlegende swing JTable und die Voraussetzung ist, dass durch das klicken auf eine beliebige Zelle, die ganze Zeile sollte hervorgehoben werden, und auch, dass die Zelle, die angeklickt wurde, sollte eine andere Farbe vom rest der markierten Zeile.

Derzeit habe ich isRowSelectionAllowed als wahr

Versuchte ich mit einem custom TableCellRenderer das wie folgt:

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;   
  }     
}

Aber das schien nicht zu funktionieren (gesamte Zeile rot hervorgehoben).

Ich habe auch versucht die Einstellung der UIManager-Eigenschaft wie folgt:

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

Aber das scheint nicht zu funktionieren (obwohl, wenn ich habe versucht, eine Grenze mit

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

gut geklappt hat)

Könnten Sie bitte geben Sie Anregungen, was ich vielleicht tun müssen?

Schreibe einen Kommentar