@postya

Как узнать есть ли в тексте лейбла ellipsis?

Приложение на JavaFX, у меня есть лейбл. В него будет попадать разный текст. Когда текста становится больше, чем размер лейбла, то он обрезается и на месте последних символов появляются 3 точки(ellipsis).

Мне нужно, чтобы когда текст заходил за рамки лейбла и появлялся elipsis размер шрифта текста уменьшался, например на 30%, чтобы текст полностью помещался в лейбл.

Как узнать, есть ли в лейбле ellipsis?

Как можно получить ellipsis?

Я пробовал вместо 3 точки ellipsis заменить на другие символы, а потом методом contains() проверить есть ли эти символы в тексте лейбла, но Java не находит эти символы, похоже что как будто символы ellipsis не доступны методу contains()

Возможно потому,что Java не заменяет урезанный текст на ellipsis, а накладывает сверху его

@FXML private Label label;

if(label.contains("...") {
label.setFont(Font.font("Serif", 55));
}
  • Вопрос задан
  • 89 просмотров
Пригласить эксперта
Ответы на вопрос 1
попробуйте

label.setOnMouseEntered(new EventHandler<MouseEvent>() {
					@Override
					public void handle(MouseEvent e) {
						System.err.println(String.format("The label.bounds: %.2f %.2f,
								Math.floor(label.getBoundsInLocal().getWidth()),
								Math.floor(label.getBoundsInLocal().getHeight())));


увидите что-то типа
The label.bounds: 54.00 18.00

в зависимости от размера масштабируйте
label.setScaleX(0.82);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы