# Farbe der Umrandung einer ausgwählten Zeile ändern (JTable)



## Micha_ (6. Jul 2005)

Hallo,

ich möchte wissen, ob es möglich ist, die Farbe der Umrandung einer Zeile in einer Spalte zu ändern ?

Meine Tabelle sieht so aus 


```
DefaultTableModel emailTableModel = new DefaultTableModel(rowdata,header);
          JTable            emailTable      = new JTable(emailTableModel);
      JScrollPane       emailScollPanel = new JScrollPane(emailTable);
```

Die Daten sehen z.B. so aus :

Franke Mustermann - Musterstrasse 18 - 33291 München

Wenn ich diese Zeile ankliche, dann möchte ich eine Umrandung um die ganze Zeile und nicht wie bis jetzt um die Zeile von der Spalte die aktuell angeklickt wurde. Wie muss man da vorgehen ?


----------



## Guest (6. Jul 2005)

table.setColumnSelectionAllowed(false);


----------



## Micha_ (6. Jul 2005)

Vielleicht habe ich mich ja falsch ausgedrückt, nehmen wir mal an ich kliche eine Zelle an, dann ist die Zeile sortiert und um die Zelle ist ein Rahmen gefärbt, diesen Rahmen möchte ich nicht um die angeklickte Zelle, sondern für die ganze Zeile haben.


----------



## Guest (7. Jul 2005)

Ohh, da habe ich dich missverstanden. 
Für das Zeichnen des Rahmens um eine Zelle ist der "List.focusCellHighlightBorder" zuständig. (siehe BasicLookAndFeel)
Einen solchen Border gibt es nicht auf Zeilenebene, soviel ich weiss.

Die einfachste Lösung ist auf den Rahmen zu verzichten, indem man im TableCellRenderer den Focus 
immer "false" setzt. (siehe hasFocus=false)
	
	
	
	





```
table.setDefaultRenderer(
  Object.class, 
  new DefaultTableCellRenderer() {
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
      return super.getTableCellRendererComponent(table, value, isSelected, false, row, column);
    }
  }
);
```
Andere Möglichkeit ist ein selbstgebastellter Rahmen, der je nach Position einer Zelle in der Zeile,
unterschiedliche Linien zeichnet. Das ganze aber nur, wenn die betreffende Zeile selektiert ist.

```
---------  ---------  ---------
| links      mitte     rechts |
---------  ---------  ---------
```


----------

