首页 > 解决方案 > 是否有一个函数可以在 Java 中查找按钮内的文本将占用任何字体大小、样式等的空间量?

问题描述

正如标题所说,我想知道是否有一个函数可以给我一个 x 和 y 值来表示文本将占用多少空间,这样我就可以相应地调整按钮的大小。如果没有,您能否给我一个代码片段,您可能需要做同样的工作。

标签: javaswingtextfontsjbutton

解决方案


您可以使用FontMetrics类,例如:

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

public static int getTextHeight(Font font, String text) {
    FontMetrics metrics = new FontMetrics(font) {
        private static final long serialVersionUID = 345266L;
    };
    Rectangle2D bounds = metrics.getStringBounds(text, null);
    return (int) bounds.getHeight();
}

要使用这些方法(可能在您的用例中):

int width = getTextWidth(jButton1.getFont(), "Hello There World");
int height = getTextHeight(jButton1.getFont(), "Hello There World");

或者...使用上面提供的链接中显示的示例。


推荐阅读