Redimensione o rótulo JavaFX se exceder

Eu tenho um rótulo em um GridPane em um TitledPane. Eu quero que ele diminua gradualmente em 0,05em se for excedido para que os três pontos ("Long Labe ...") não apareçam -> "Long Label" em tamanho pequeno.

Um método isOverrun () - para o Label seria ótimo, mas o JavaFX não fornece isso e a vida não é um concerto de desejos.
Então, minha solução até agora:

    Bounds tpBounds = tPane.getBoundsInLocal();
    Bounds lblBounds = label.getBoundsInLocal();
    Double fontSize = 1.0;

    while (tpBounds.getWidth() < lblBounds.getWidth() && fontSize > 0.5) {
        fontSize = fontSize-0.05;
        label.setStyle("-fx-font-size: "+fontSize+"em;");

        System.out.println(fontSize+" "+tpBounds.getWidth()+" "+lblBounds.getWidth());
    }

O problema: durante o loop while, bounds.getWidth () está sempre mostrando a largura original. A largura "nova" com o novo tamanho da fonte não é atualizada com rapidez suficiente para ser capturada pela condição while, portanto, o tamanho da fonte está ficando cada vez menor.
Alguma solução?

editar
Eu pergunto com mais frequência: É realmente MUITO DIFÍCIL diminuir um tamanho de etiqueta, até que caiba sem truncar ?!

questionAnswers(3)

yourAnswerToTheQuestion