Изменение размера метки JavaFX при переполнении
У меня есть Метка в GridPane в TitledPane. Я хочу, чтобы он постепенно уменьшался на 0,05 мкм, если он переполнен, поэтому три точки («Длинная метка ...») не отображаются -> «Длинная метка» в маленьком значении.
IsOverrun () - метод для Label был бы хорош, но JavaFX этого не обеспечивает, и жизнь не является идеей для желающих.
Так что мой обходной путь пока что
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());
}
Проблема: во время цикла while bounds.getWidth () всегда показывает исходную ширину. «Новая» ширина с новым размером шрифта не обновляется достаточно быстро, чтобы быть пойманной условием while, поэтому размер шрифта становится все меньше и меньше.
Любые решения?
редактировать
Я спрашиваю чаще: действительно ли это сложно сделать ярлык сам по себе, пока он не уместится без усечения ?!