2015-12-10 12 views
2

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

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

+0

сделал любой из ответов вам помочь? если это так, не стесняйтесь принять его. –

ответ

1

если вам нужно ДЛИНА вашего String на основе label, вы можете работать с:

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

Я использую этот метод, чтобы сократить отображаемую строку и расширить его «...» Внутри resizable TableColumn.

0

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

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(); 
}