JTabbedPane ChangeListener

Necesito detectar cuándo cambia la pestaña seleccionada y obtener su índice.

l siguiente código funciona, pero dispara elprintln tantas veces como la cantidad de pestañas cargadas actualmente:

tabbedPane.addChangeListener(new ChangeListener() {
    public void stateChanged(ChangeEvent e) {
        System.out.println("Tab: " + tabbedPane.getSelectedIndex());
        // Prints the string 3 times if there are 3 tabs etc
    }
});

¿Cuál es la forma correcta de hacer esto? Gracias de antemano

Respuestas a la pregunta(2)

Su respuesta a la pregunta