Wie erstelle ich erweiterbare Panels mit swing?

Ich möchte eine Liste mit Einblend- und Ausblendfenstern erstellen, wie in folgendem Bild dargestellt:

Ich habe keine Swing-Komponente dafür gefunden, also habe ich angefangen, so etwas zu kreieren. Ich habe versucht, Knöpfe untereinander zu platzieren, die die verfügbare Breite ausfüllen, aber es funktioniert nicht wirklich. Ich kann nur den zuletzt hinzugefügten sehen.

    JPanel panel = new JPanel();
    panel.setLayout(new BorderLayout());

    panel.add(new JButton("Delphi Projects"), BorderLayout.NORTH);
    panel.add(new JPanel(), BorderLayout.NORTH); // hidden panel
    panel.add(new JButton("Delphi Projects | Delphi Files"), BorderLayout.NORTH);
    panel.add(new JPanel(), BorderLayout.NORTH); // hidden panel
    panel.add(new JButton("Other Files"), BorderLayout.NORTH);
    panel.add(new JPanel(), BorderLayout.NORTH); // hidden panel
    panel.add(new JButton("C++ Builder Projects | C++ Builder Files"), BorderLayout.NORTH);
    panel.add(new JPanel(), BorderLayout.NORTH); // hidden panel

    JScrollPane scroll = new JScrollPane(panel);

Antworten auf die Frage(3)

Ihre Antwort auf die Frage