---
title: 'Inselraus: Selektionen einer Tabelle'
url: 'https://tutego.de/blog/javainsel/2013/02/inselraus-selektionen-einer-tabelle'
markdown: 'https://tutego.de/blog/javainsel/2013/02/inselraus-selektionen-einer-tabelle.md'
date: '2013-02-24'
description: 'In einer JTable können auf unterschiedliche Art und Weise Zellen selektiert werden: zum einen nur in einer Zeile oder Spalte, zum anderen kann auch ein ganzer Block oder können auch beliebige Zellen selektiert werden. Die Art der Selektion bestimmen Konstanten in ListSelectionModel. So wird SINGLE_…'
taxonomy:
  category:
    - Swing
---

# Inselraus: Selektionen einer Tabelle

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://tutego.de/blog/javainsel/)

## Inselraus: Selektionen einer Tabelle

24.02.2013 · [Christian Ullenboom](https://tutego.de/blog/javainsel/author/admin/)

In einer JTable können auf unterschiedliche Art und Weise Zellen selektiert werden: zum einen nur in einer Zeile oder Spalte, zum anderen kann auch ein ganzer Block oder können auch beliebige Zellen selektiert werden. Die Art der Selektion bestimmen Konstanten in ListSelectionModel. So wird SINGLE\_SELECTION nur die Selektion einer einzigen Zelle zulassen.

Beispiel: In einer JTable soll entweder ein ununterbrochener Block Zeilen oder Spalten ausgewählt werden dürfen:

```java
table.setSelectionMode( ListSelectionModel.SINGLE_INTERVAL_SELECTION );
```

Mit Methoden lassen sich im Programm alle Elemente einer Spalte oder Zeile selektieren. Die Selektier-Erlaubnis geben zunächst zwei Methoden:

- `table.setColumnSelectionAllowed( boolean )`
- `table.setRowSelectionAllowed( boolean )`

Die automatische Selektion von Spalten gelingt mit der JTable-Methode `setColumnSelectionInterval(int, int)`, weitere Bereiche lassen sich mit `addColumnSelectionInterval(int, int)` hinzufügen und mit `removeColumnSelectionInterval(int, int)` entfernen. Das Gleiche gilt für die Methoden, die »Row« im Methodennamen tragen.

Beispiel: Selektiere in einer JTable table die Spalte 0 komplett:

```java
table.setSelectionMode( ListSelectionModel.MULTIPLE_INTERVAL_SELECTION );
table.setColumnSelectionAllowed( true );
table.setRowSelectionAllowed( false );
table.setColumnSelectionInterval( 0, 0 );
```

Selektiere in einer Tabelle nur die Zelle 38, 5:

```java
table.setSelectionMode( ListSelectionModel.SINGLE_SELECTION  );
table.setColumnSelectionAllowed( true );
table.setRowSelectionAllowed( true );
table.changeSelection( 38, 5, false, false );
```

Als Selektionsmodus reicht SINGLE\_SELECTION aus, MULTIPLE\_INTERVAL\_SELECTION wäre aber auch in Ordnung. Beide Selektionen sind zusammen in der Form nicht möglich. Bei einer Einzelselektion wird die Zelle nur umrandet, aber nicht wie beim Standard-Metal-Look-and-Feel blau ausgefüllt.

Die Methode `selectAll()` selektiert alle Elemente, und `clearSelection()` löscht alle Selektionen.

Kategorien: [Swing](https://tutego.de/blog/javainsel/category/swing/)

## 1 Kommentare

**Rudolf Kinauer** · [26.07.2017 16:30](#comment-654079)

Hallo Herr Ullenboom, ich meinte Ihre Lösung zur Auswahl einer einzigen Zelle (hier: 38,5) in meiner Class umgesetzt zu haben. Leider führt aber der Index für die Spalte nicht zu dem gewünschten Ergebnis. Vielmehr "rutscht" der Fokus eine Spalte weiter. Mein Index muss eigentlich stimmen, weil bei "getSelectedColumn liefert er mir immer brav den erwarteten Wert. Haben Sie eine Ahnung, warum changeSelection die falsche Spalte festlegt? Danke!

Die bisherigen Kommentare wurden aus WordPress übernommen. Neue Kommentare sind derzeit geschlossen.

[← Alle Beiträge](https://tutego.de/blog/javainsel/)

---

## Navigation

- Previous: [Inselraus: Tabellenkopf von Swing-Tabellen](https://tutego.de/blog/javainsel/2013/02/inselraus-tabellenkopf-von-swing-tabellen.md)
- Next: [Inselraus: Dynamisches Layout während einer Größenänderung](https://tutego.de/blog/javainsel/2013/02/inselraus-dynamisches-layout-whrend-einer-grennderung.md)
