¿Cómo crear paneles expandibles con swing?
Me gustaría crear una lista de paneles expandidos y colapsados, como en esta imagen:
No he encontrado ningún componente de swing para esto, así que comencé a crear algo como esto. Traté de poner botones uno debajo del otro, que llenan el ancho disponible, pero realmente no funciona. Solo puedo ver el último agregado.
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);