JTable: alternar columnas con PopupMenu (como el Explorador de Windows)

¿Cómo haría para crear una JTable en Swing que permita al usuario alternar columnas con un simple menú desplegable, como en las carpetas del Explorador de Windows? Mi tabla tiene 12 columnas, y la pantalla no puede caber toda la información en la pantalla a la vez. Dado que el usuario puede no necesitar ver muchas de estas columnas, esta parece ser la mejor opción.

Supongo que usaría unJPopupMenu que aparece cuando el usuario hace clic con el botón derecho en el encabezado de la tabla, con unJCheckBoxMenuItem para cada columna

Aquí hay una captura de pantalla del alternador de columnas de Windows que estoy tratando de replicar:

Respuestas a la pregunta(1)

Su respuesta a la pregunta