Las pestañas representan una disposición de paneles organizada y separada por funcionalidad donde existe un elemento general (contenedor) que engloba todos los elementos (contenedores) que formarán las pestañas. Los más útil es hacer todo de forma modular de forma que cada pestaña represente una clase JPane para así hacerlo más sencillo tanto de mantener como de implementar

El constructor del elemento quedaría de la siguiente forma:

//Donde se indica el situio en el que irá situada la pestania (TOP; RIGHT; LEFT; BOTTOM)
JTabbedPane panelPestanias = new JTabbedPane(SwingConstants.BOTTOM);

Puede existir una segunda constante en el constructor, pero a efectos de colocación no se utilizará (JTabbedPane.WRAP_TAB_LAYOUT,JTabbedPane.SCROLL_TAB_LAYOUT)

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

//Añade una pestana con título, icono, componente y tooltip
panelPestanias.addTab("Pestania 1",null,pestania1,"Cerrar pestania");
//Asocia a la pestaña 1 el atajo de teclado 1 (Ctrl + Alt)
panelPestanias.setMnemonicAt(0, KeyEvent.VK_1);
//Obtiene el índice de la pestaña seleccionadda
panelPestanias.getSelectedIndex();
//Obtiene el número total de pentañas
panelPestanias.getTabCount();
//Pone como selección la pestaña numero 1
panelPestanias.setSelectedIndex(0);
//Obtiene la penstania asociada al componente concreto
panelPestanias.indexOfComponent(pestania4);
//Cambia la localizción de la pestania
panelPestanias.setTabPlacement(SwingConstants.TOP);

Manejo de eventos

Se puede evaluar el cambio de pestaña y asociar una acción determinada

panelPestanias.addChangeListener(new ChangeListener() {
    @Override
    public void stateChanged(ChangeEvent e) {
        System.out.print(panelPestanias.getSelectedIndex());
    }
});