Un JSplitPane es que capaz de mostrar dos elementos al mismo tiempo con una barra separadora que maneja el espacio de mostrado de cada uno de los contenedores. El constructor queda de la siguiente forma

//Orientación, componente 1, componente 2
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,panelIzquieda,panelDerecha);

Los métodos más utilizados para este componente son:

//Asocia componente a la parte izquierda
splitPane.setLeftComponent(panelIzquieda);
//Asocia componente a la parte derecha
splitPane.setRightComponent(panelDerecha);
//Asocia componente a la parte baja
splitPane.setBottomComponent(panelBajo);
//Asocia componente a la parte arriba
splitPane.setTopComponent(panelArriba);
//Cambia la orientación de los componentes
splitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
//Permite expandir componentes con un click de ratón
splitPane.setOneTouchExpandable(true);
//Resetea la posición inicial del separador
splitPane.resetToPreferredSizes();
//Renderiza el movimiento de forma progresiva
splitPane.setContinuousLayout(true);
//Pone el la posición del separador en la mitad del elemento
splitPane.setResizeWeight(0.5);