Оцените количество пикселей с учетом размера шрифта и семейства шрифтов в Java

У меня есть пользовательская строка. Я могу иметь динамическую длину, размер шрифта и семейство шрифтов. Как только я узнаю, сколько пикселей займет этот текст, я смогу обрезать его, если он не помещается в родительский элемент.

Здесь я не могу нарисовать строку или поле, пока я оцениваю пиксели, но у меня есть вся информация, такая как размер шрифта и семейство шрифтов. Я использую Java.

2 ответа

Если вам нужна длина вашего String на основе labelВы можете работать с:

lYourLabel.getFontMetrics(lYourLabel.getFont()).stringWidth("Hello World");

Я использую этот метод, чтобы вырезать отображаемую строку и расширить ее с помощью "..." внутри изменяемого размера TableColumn,

Вот пара методов, которые я использую для такого рода вещей:

public static int getTextWidth(Font font, String text) {
    FontMetrics metrics = new FontMetrics(font) {};
    Rectangle2D bounds = metrics.getStringBounds(text, null);
    return (int) bounds.getWidth();
}

public static int getTextHeight(Font font, String text) {
    FontMetrics metrics = new FontMetrics(font) {};
    Rectangle2D bounds = metrics.getStringBounds(text, null);
    return (int) bounds.getHeight();
}
Другие вопросы по тегам