Cambiar el tamaño de fuente en tiempo de ejecución en una aplicación Swing

En la actualidad, muchos sitios web tienen una opción para permitir que el usuario aumente o disminuya el tamaño de la fuente que aparece en el sitio. Me gustaría agregar una funcionalidad similar a mi aplicación Java Swing, con una opción para cambiar la fuente a un tamaño más grande o volver al tamaño estándar. El usuario podría hacer esto en tiempo de ejecución, a través de un elemento de menú.

La versión actual de mi código no funciona muy bien: el código itera sobre las claves almacenadas en UIManager / UIDefaults, y para cada clave que es una fuente, mi código deriva una nueva fuente con el tamaño del punto de destino (por ejemplo, si es más grande , entonces el nuevo tamaño en puntos suele ser 16; de lo contrario, si va al tamaño normal, generalmente es 11), y luego coloca esa clave y la nueva fuente en UIManager. Luego, el código llama a SwingUtilities.updateComponentTreeUI () en el marco y luego lo empaqueta.

El código aumentará la fuente una vez, pero volver a cambiar al tamaño normal no tiene ningún efecto. Esto es especialmente notable con la barra de menú.

¿Voy por esto de la manera correcta? ¿Debería crear una nueva apariencia con el tamaño de punto más grande, o usar algún otro método por completo?

Gracias de antemano por cualquier ayuda.

Respuestas a la pregunta(1)

Su respuesta a la pregunta