2011-11-18 13 views
7

Quiero un JPanel que se pueda colapsar o expandir cuando el usuario haga clic en un texto/icono en su borde. Necesito este tipo de panel debido a la escasez de espacio en mi aplicación.Cómo tener JPanel extensible/expandible en Java Swing

He leído acerca de la clase CollapsiblePanel, pero no estoy seguro de cómo usarlo .. Creo que SwingX es necesario descargarlo pero no lo encontró en ninguna parte.

Por otra parte, sería mejor si obtengo la solución para esto en Java Swing básico.

+3

* "Necesito este tipo de panel debido a la escasez de espacio en mi aplicación." * Hay otras maneras de colocar muchos controles en una GUI. 'JTabbedPane',' JSplitPane', 'CardLayout',' JDesktopPane'/'JInternalFrame' .. Alternativamente, podría tener más sentido abrir los controles extra en un (posiblemente modal)' JDialog', o 'JOptionPane'. –

+2

@AndrewThompson - estamos en Swing, así que hay muchas posibilidades, pero: JXCollapsible/JXTaskPane es tan lindo :-) – kleopatra

+0

@kleopatra Estaba esperando que aparezcas y hagas la pregunta * real * del OP. Solo pensé que los haría conscientes de que hay una plétora de posibilidades. :) –

Respuesta

9
no

seguro de dónde ha buscado, pero no es que difícil encontrar - incluso teniendo en cuenta el lío que estamos en la infraestructura ;-)

Ir a la web del proyecto de SwingX, a continuación, siga el enlace en la primera párrafo a la sección de descarga (barebone), hasta releases \ 1.6.2. Nada especial para los collapsibles, solo contenedores para colocar componentes.

+0

Concur. Actualmente reescribiendo la mayor parte de nuestra GUI con componentes SwingX. Ahorra aproximadamente la mitad del código para la adaptación de componentes Swing estándar. –

+0

Gracias kleopatra .. Tengo la biblioteca SwingX ... importada y estoy usando ahora. Me encantaron JXTaskPane y JXCollapsible :) Aún no he explorado en profundidad los paneles duros. Lo que estaba buscando es algo similar a "JXTaskPane" y "JXCollapsible". Sin embargo, le gustó ** JXTaskpane ** más de ** JXCollapsiblePane **, ya que el panel contraíble requiere ** un activador externo ** para expandirse y contraerse. Corrígeme si estoy equivocado. –

1

Creo que puede usar un JSplitPane para resolver su problema. Utilizando la propiedad para establecer la posición del divisor juiciosamente, puede lograr lo que quiere.