JTabbedPane - No se pueden eliminar pestañas individuales

Tengo un simple JTabbedPaneque muestra archivos de texto. Cada pestaña contiene una JListenvoltura que JScrollPaneme gustaría poder cerrar las pestañas individuales con un clic derecho, pero no puedo lograr que este comportamiento aparentemente simple funcione.

Esto es lo que he probado hasta ahora:

Agregar un oyente al Panel

public class RightClickListener extends MouseAdapter {
    public void mouseClicked(MouseEvent e) {
        if (SwingUtilities.isRightMouseButton(e)) { 
            remove(getComponentAt(e.getPoint()));
        }
    }
}

Agregar a las pestañas individuales

public class RightClickListener extends MouseAdapter {
    public void mouseClicked(MouseEvent e) {
        if (SwingUtilities.isRightMouseButton(e)) { 
            remove((Component) e.getSource());
        }
    }
}

He intentado varias otras variaciones, y nada parece funcionar. ¿Alguien sabe por qué estos componentes no se eliminan? Estaré encantado de proporcionar cualquier información adicional según sea necesario.

ACTUALIZACIÓN Más detalles:

public void loadCode(String cFile, String cLine) {
    Scanner scan = null;
    try {
        scan = new Scanner(new File(cFile));
    } catch (FileNotFoundException e) { e.printStackTrace();}

    DefaultListModel<String> model = new DefaultListModel<String>();
    JList<String> list = new JList<String>(model);

    while(scan.hasNext()) {
        model.addElement(scan.nextLine());
    }

    JScrollPane newTab = new JScrollPane(list);
    tp.add(cFile, newTab);
    tp.addMouseListener(new RightClickListener());
}

public class RightClickListener extends MouseAdapter {

    public void mouseClicked(MouseEvent e) {
        if (SwingUtilities.isRightMouseButton(e)) { 
            remove(indexAtLocation(e.getX(), e.getY()));
        }
    }
}
Respuesta 1

Estoy escribiendo código para el procesamiento de texto, y las cosas van mucho más rápido si primero convierto las cadenas a enteros. Para hacer esto, hice una clase de Diccionario, donde cada vez que veo una nueva cadena, le doy un ...

Nuevo en Elastic search, utilizando un índice para almacenar los documentos que, por ejemplo, es información de la compañía sobre los empleados, actualmente hay 600,000 datos de empleados en el índice, entre estos empleados necesitamos ...

PersistenceHelper-context.xml <bean id = "dataSource" class = "org.springframework.jdbc.datasource.DriverManagerDataSource"> <! ----> <nombre de propiedad = "driverClassName" value = "org ....

¿Hay alguna manera de comunicarse entre subprocesos, como obtener variables con getters a medida que se actualizan en un subproceso diferente? Por ejemplo, si estoy cargando imágenes en un subproceso ejecutable de esta manera: Subproceso ...