Alterando o tamanho da fonte em tempo de execução em um aplicativo Swing

Atualmente, muitos sites têm uma opção para permitir que o usuário aumente ou diminua o tamanho da fonte que aparece no site. Gostaria de adicionar funcionalidades semelhantes ao meu aplicativo Java Swing, com a opção de alterar a fonte para um tamanho maior ou reverter para o tamanho padrão. O usuário poderá fazer isso em tempo de execução, por meio de um item de menu.

A versão atual do meu código não está funcionando muito bem - o código itera sobre as chaves armazenadas nos padrões do UIManager / UID e, para cada chave que é uma fonte, meu código deriva uma nova fonte com o tamanho do ponto de destino (por exemplo, se for maior , o novo tamanho do ponto geralmente é 16; caso contrário, se for para o tamanho normal, geralmente é 11) e coloca essa chave e a nova fonte no UIManager. Posteriormente, o código chama SwingUtilities.updateComponentTreeUI () no quadro e empacota o quadro.

O código aumentará a fonte uma vez, mas retornar ao tamanho normal não tem efeito. Isso é especialmente visível na barra de menus.

Estou fazendo isso da maneira certa? Em vez disso, devo criar uma nova aparência com o tamanho de ponto maior ou usar outro método completamente?

Agradecemos antecipadamente por qualquer ajuda.

questionAnswers(1)

yourAnswerToTheQuestion