¿Cómo hago para que mi aplicación Java se cierre bien en Windows?

Tengo una aplicación Java que quiero cerrar 'bien' cuando el usuario selecciona Inicio-> Apagar. Intenté usar escuchas de apagado JVM a través de Runtime.addShutdownHook (...) pero esto no funciona ya que no puedo usar ningún elemento de la interfaz de usuari

También he intentado usar el controlador de salida en la ventana de la interfaz de usuario de mi aplicación principal, pero no tengo forma de detenerlo o detenerlo hasta donde puedo ver. ¿Cómo puedo manejar bien el apagado?

Respuestas a la pregunta(2)

Su respuesta a la pregunta