是否有函数可以找到 space 按钮内的文本在 Java 中将占用任何字体大小、样式等的数量?
Is there a function to find the amount of space a text inside a button will take up with any font size, style etc., in Java?
正如标题所说,我想知道是否有一个函数可以为我提供一个 x 和 y 值,表示 space 文本将占用多少,以便我可以相应地调整按钮的大小。如果没有,请给我一个代码片段,你可能需要做同样的工作。
您可以使用FontMetricsclass,例如:
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");
或者...使用上面提供的 link 中显示的示例。
正如标题所说,我想知道是否有一个函数可以为我提供一个 x 和 y 值,表示 space 文本将占用多少,以便我可以相应地调整按钮的大小。如果没有,请给我一个代码片段,你可能需要做同样的工作。
您可以使用FontMetricsclass,例如:
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");
或者...使用上面提供的 link 中显示的示例。