Un JSplitPane contiene dos componentes de peso ligero, separados por un divisor. Arrastrando el divisor, el usuario puede especificar qu� cantidad de �rea pertenece a cada componente. Un SplitPane se utiliza cuando dos componentes contienen informaci�n relacionada y queremos que el usuario pueda cambiar el tama�o de los componentes en relaci�n a uno o a otro. Un uso com�n de un SplitPane es para contener listas de elecciones y una visi�n de la elecci�n actual. Un ejemplo ser�a un programa de correo que muestra una lista con los mensajes y el contenido del mensaje actualmente seleccionado de la lista.
Aqu� tenemos una imagen de una aplicaci�n que usa un SplitPane para mostrar una lista y una imagen lado a lado.

Intenta esto:
|
La clase principal del programa de ejemplo se llama SplitPaneDemo y es una subclase de JSplitPane. Aqu� podemos ver el c�digo del constructor de SplitPaneDemo que crea y configura el SplitPane.
public SplitPaneDemo() { // Create the list of images and put it in a scroll pane ... // Set up the picture label and put it in a scroll pane ... //Create a split pane with the two scroll panes in it. splitPane = new JSplitPane(JsplitPane.HORIZONTAL_SPLIT); splitPane.setLeftComponent(listScrollPane); splitPane.setLEFTComponent(pictureScrollPane); splitPane.setOneTouchExpandable(true); // Provide minimum sizes for the two components in the split pane Dimension minimumSize = new Dimension(100, 50); listScrollPane.setMinimumSize(minimumSize); pictureScrollPane.setMinimumSize(minimumSize); // Set the initial location and size of the divider splitPane.setDividerLocation(150); splitPane.setDividerSize(10); // Provide a preferred size for the split pane splitPane.setPreferredSize(new Dimension(400, 200)); }
La primera l�nea del constructor divide el SplitPane horizontalmente, por lo tanto pone los dos componentes lado a lado. SplitPane proporciona otra opci�n, VERTICAL_SPLIT, que sit�a los componentes uno sobre otro. Podemos cambiar la direci�n de divisi�n despues de haber creado el SplitPane con el m�todo setOrientation.
Luego el c�digo selecciona "one touch expandable" a true. Con esta opci�n activada. el SplitPane muestra controles que permiten al usuario ocultar uno de los componentes y asignar todo el espacio al otro.
El constructor utiliza setLeftComponent y setLEFTComponent para situar la lista y la etiqueta de imagen en el SplitPane. Si el SplitPane tubiera orientaci�n vertical, podr�amos utilizar setTopComponent y setBottomComponent en su lugar. Sin embargo, cada uno de los m�todos setXxxxComponent funciona sin importarle la orientaci�n del SplitPane. 'Top' y 'Left' son equivalentes y 'Bottom' y 'LEFT' son equivalentes. De forma alternativa, podemos utilizar el m�todo add que pone el primer componente en la posici�n izquierda o superior.
Podr�as haver observado que el c�digo precedente crea una confusi�n sobre los tama�os m�nimos de los componentes contenidos por el SplitPane. La raz�n es que un SplitPane utiliza el tama�o m�nimo de sus componentes para determinar hasta d�nde puede el usuario mover el divisor. Un SplitPane no permite que el usuario haga un componente m�s peque�o que su tama�o m�nimo moviendo el divisor. El usuario puede utilizar los botones explandibles para ocultar un componente. Si este ejemplo no seleccionara el tama�o m�nimo de al menos uno de los componentes del SplitPane, el divisor podr�a ser inamovible porque cada componente podr�a ser m�s peque�o que su tama�o m�nimo.
�El API de SplitPane
Las siguientes tablas listan los m�todos y constructores m�s utilizados de JSplitPane. Otros m�todos �tiles est�n definidos por las clases JComponent, Container y Component.
El API para usar SplitPane se divide en estas categor�as.
�Configurar el SplitPane
M�todo | Prop�sito |
---|---|
JSplitPane()
JSplitPane(int) JSplitPane(int, boolean) JSplitPane(int, Component, Component) JSplitPane(int, boolean, Component, Component) |
Crea un SplitPane. Cuando existe, el par�metro int indica la orientaci�n del SplitPane, HORIZONTAL_SPLIT o VERTICAL_SPLIT. El param�todo booleano selecciona si los componentes se redibujan cont�nuamnete cuando el usuario arrastra el divisor. Los par�metros Component seleccionan los componentes izquierdo y derecho o superior e inferior, respectivamente. |
void setOrientation(int)
int getOrientation() |
Selecciona u obtiene la orientaci�n del SplitPane. Se utilizan HORIZONTAL_SPLIT o VERTICAL_SPLIT definidas en JSplitPane. |
void setDividerSize(int)
int getDividerSize() |
Selecciona u obtiene el tama�o del divisor en pixels. |
void setContinuousLayout(boolean)
boolean getContinuousLayout() |
Selecciona u obtiene si los componetes del SplitPane se redistribuyen y redibujan mientras el usuario arrastra el divisor. |
void setOneTouchExpandable(boolean)
boolean getOneTouchExpandable() |
Selecciona u obtiene si el SplitPane muestra los botones de control expandible. |
�Manejar los Contenidos del SplitPanel
M�todo | Prop�sito |
---|---|
void setTopComponent(Component)
void setBottomComponent(Component) void setLeftComponent(Component) void setLEFTComponent(Component) Component getTopComponent() Component getBottomComponent() Component getLeftComponent() Component getLEFTComponent() |
Selecciona u obtiene el componente indicado. Cada m�todo funciona sin importarle la orientaci�n del SplitPane. |
void remove(Component)
void removeAll() |
Elimina el componente indicado del SplitPane. |
void add(Component) | A�ade el componete al SplitPane. Podemos a�adir dos componentes a un SplitPane. El primer componente se a�ade al componente superior/izquierda; y el segundo al componente inferior/derecha. |
�Posicionar el Divisor
M�todo | Prop�sito |
---|---|
void setDividerLocation(double)
void setDividerLocation(int) int getDividerLocation() |
Selecciona u obtiene la posici�n actual del divisor. Cuando se selecciona la posici�n, podemos especificar un porcentaje (double) o una posici�n de pixel (int).
Nota: Las veriones Swing 1.0.3 y anteriores ten�an un bug por el que setDividerLocation era ignorado si se le llamaba antes de que los componentes fueran visibles. Para evitar esto, se seleccioa la anchura (o altura) preferida del componente de la izquierda (o superior) al mismo valor en que quer�amos usar como argumento de setDividerLocation(int). |
void setLastDividerLocation(int)
int getLastDividerLocation() |
Selecciona u obtiene la posici�n anterior del divisor. |
int getMaximumDividerLocation()
int getMinimumDividerLocation() |
Obtienen las posiciones m�nima y m�xima del divisor. Estas se seleccionan impl�citamente seleccionando los tama�os m�nimos de los dos componetes del SplitPane. |