---
title: 'Inselraus: Swing/Auswahlmenü mit Separator'
url: 'https://tutego.de/blog/javainsel/2012/05/inselraus-swingauswahlmen-mit-separator'
markdown: 'https://tutego.de/blog/javainsel/2012/05/inselraus-swingauswahlmen-mit-separator.md'
date: '2012-05-27'
description: 'Standardmäßig unterstützt die JList und auch JComboBox keine Separatoren, doch die Unterteilung in Segmente ist in der Praxis sehr nützlich. Microsoft Word und PowerPoint benutzen sie zum Beispiel, um die zuletzt vom Benutzer ausgewählten Zeichensätze prominent oben in der Liste zu haben (Excel dag…'
taxonomy:
  category:
    - Insel
    - Swing
---

# Inselraus: Swing/Auswahlmenü mit Separator

![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: Swing/Auswahlmenü mit Separator

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

Standardmäßig unterstützt die JList und auch JComboBox keine Separatoren, doch die Unterteilung in Segmente ist in der Praxis sehr nützlich. Microsoft Word und PowerPoint benutzen sie zum Beispiel, um die zuletzt vom Benutzer ausgewählten Zeichensätze prominent oben in der Liste zu haben (Excel dagegen tut dies nicht).

[![Abbildung](http://openbook.galileocomputing.de/java7/bilderklein/klein10_043-wordauswahlmenues.png)](http://openbook.galileocomputing.de/java7/bilder/10_043-wordauswahlmenues.png)

**Abbildung 9.42:** Separator in Words Zeichensatzauswahlliste

Wir wollen diese Möglichkeit nachbilden und dabei noch einiges über Modelle und Renderer lernen.

[![Abbildung](http://openbook.galileocomputing.de/java7/bilderklein/klein10_044-jcomboboxmitsepa.png)](http://openbook.galileocomputing.de/java7/bilder/10_044-jcomboboxmitsepa.png)

**Abbildung 9.43:** Eine eigene Variante mit JSeparator in JComboBox

Bei der Umsetzung gibt es unterschiedliche Varianten, die sich außer in der technischen Implementierung darin unterscheiden, ob das Modell eine Markierung für den Separator enthält oder nicht. Wir stellen beide Ansätze vor und beginnen mit der ersten Variante, also damit, einem Zellen-Renderer Positionen mitzugeben, die sagen, wo ein Trennstrich zu zeichnen ist.

```java
package com.tutego.insel.ui.list;
```

```text

```

```java
import javax.swing.*;
```

```text

```

```java
public class JComboBoxWithSeparator1 {
```

```java
  public static void main( String[] args ) throws Exception {
```

```java
    UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
```

```java
    JFrame frame = new JFrame();
```

```java
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
```

```java
    String[] items = { "Cambria", "Arial", "Verdana", "Times" };
```

```java
    JComboBox comboBox = new JComboBox( items );
```

```java
    ListCellRenderer renderer = new SeparatorAwareListCellRenderer1(
```

```java
                                          comboBox.getRenderer(), 0 );
```

```java
    comboBox.setRenderer( renderer );
```

```java
    frame.add( comboBox );
```

```java
    frame.pack();
```

```java
    frame.setVisible( true );
```

```java
  }
```

```java
}
```

Die eigene Klasse `SeparatorAwareListCellRenderer1` ist ein ListCellRenderer, den die JComboBox zur Darstellung der Komponenten nutzt. Im Konstruktor des Renderers geben wir den Original-Renderer mit – es kann ein bestimmter Renderer schon vorinstalliert sein, den wollen wir dekorieren – sowie eine variable Argumentliste von Positionen. Das Beispiel übergibt nur 0, da nach dem ersten Element (Index = 0) ein Trennzeichen zu setzen sein soll, sodass Cambria und Arial abgetrennt sind.

```java
package com.tutego.insel.ui.list;
```

```text

```

```java
import java.awt.*;
```

```java
import java.util.Arrays;
```

```text

```

```java
import javax.swing.*;
```

```text

```

```java
public class SeparatorAwareListCellRenderer1 implements ListCellRenderer
```

```java
{
```

```

  private final ListCellRenderer
```

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

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

---

## Navigation

- Previous: [Inselraus: Variablen mit Xor vertauschen](https://tutego.de/blog/javainsel/2012/05/inselraus-variablen-mit-xor-vertauschen.md)
- Next: [Jobangebot Java-Entwickler](https://tutego.de/blog/javainsel/2012/05/jobangebot-java-entwickler.md)
