Me gustaría crear una lista de expandand/contraer los paneles, como en esta imagen:

Cómo crear ampliable utilizando paneles de giro?

No he encontrado ningún componente swing para esto, así que empecé a crear algo como esto.
Traté de poner los botones de uno en el otro, los que llenan la anchura disponible, pero realmente no funciona. Sólo puedo ver la última añadida.

    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);
Algunos ejemplos relacionados son cite aquí.

OriginalEl autor Iter Ator | 2014-09-06

3 Comentarios

  1. 12

    Puedes echar un vistazo a JXTaskPaneContainer y JXTaskPane de SwingX proyecto que tiene estas ventajas:

    • Son los componentes como un JPanel es así que sin más esfuerzo que se requiere para trabajar con ellos.
    • A diferencia de acordeones usted puede tener más de un panel ampliado en cualquier
      tiempo.
    • Tienen un lugar fresco y suave efecto sobre colapsar/expandir eventos.
    • A diferencia de los árboles/árbol de tablas que usted no tiene que meterse con TreeModel ni TreeTableModel a todos. También los árboles y el árbol, las tablas son los componentes de la intención de mostrar los datos en un hierarhical forma, no para agregar componentes en ella.

    Si no te gusta los paneles de tareas y quieran poner algo por su cuenta, a continuación, usted tiene JXCollapsiblePane (también disponible en SwingX API).

    De verificación SwingLabs Demos para un conjunto completo de SwingX componentes de demostración.

    Captura de pantalla

    Cómo crear ampliable utilizando paneles de giro?

    OriginalEl autor dic19

  2. 4

    Mirar JXTreeTable de la SwingX proyecto:
    Cómo crear ampliable utilizando paneles de giro?

    También puede buscar en el JXTree, que es similar, y podría ser mejor, según sus necesidades exactas.

    Obtener de aquí.

    OriginalEl autor chiastic-security

  3. 2

    El componente que estás buscando es un acordeón. Eche un vistazo a esta pregunta:
    Acordeón para el Swing?

    Como a su código sólo se puede ver la última, porque vas a agregar a todos ellos a un panel con un BorderLayout, con BorderLayout.North como el diseño de restricción. Cada uno de ellos quita que agregó anteriormente panel. Intente cambiar a otro diseño – por ejemplo,BoxLayout.

    El acordeón es un componente diferente la intención de mostrar un único panel en cualquier momento. Yo no creo que esto es lo OP quiere.

    OriginalEl autor Kalev

Dejar respuesta

Please enter your comment!
Please enter your name here