我目前正在为我的菜单系统上 的Java
游戏,我不知道如何可以从中心的文本Graphics.drawString()
,因此,如果我想画一个文本,其中心点是在X: 50
和Y: 50
,和文字30
像素宽,10
像素高,文字将以X: 35
和开头Y: 45
。
可以在绘制文字之前确定其宽度吗?
这样一来,数学就很容易了。
编辑: 我也想知道是否可以获取文本的高度,以便我也可以垂直居中。
任何帮助表示赞赏!
我用这个问题的答案。
我使用的代码如下所示:
/**
* Draw a String centered in the middle of a Rectangle.
*
* @param g The Graphics instance.
* @param text The String to draw.
* @param rect The Rectangle to center the text in.
*/
public void drawCenteredString(Graphics g, String text, Rectangle rect, Font font) {
// Get the FontMetrics
FontMetrics metrics = g.getFontMetrics(font);
// Determine the X coordinate for the text
int x = rect.x + (rect.width - metrics.stringWidth(text)) / 2;
// Determine the Y coordinate for the text (note we add the ascent, as in java 2d 0 is top of the screen)
int y = rect.y + ((rect.height - metrics.getHeight()) / 2) + metrics.getAscent();
// Set the font
g.setFont(font);
// Draw the String
g.drawString(text, x, y);
}
问题内容: 如何在Java中将drawString的文本居中?我希望它可以动态地沿屏幕居中,而不管是否更改框的高度和宽度。我找到了这段代码,但我不知道如何使用它。有人可以解释吗? 问题答案: 垂直… 也在这里展示 还可以看一下2D图形和使用文本API
问题内容: 使a (例如a 或a)居中的最简单方法是什么? 问题答案: 从这个连结 如果使用的是Java 1.4或更高版本,则可以在对话框,框架或窗口上使用简单的setLocationRelativeTo(null)方法将其居中。
如何在Java中将drawString的文本居中?我希望它可以沿着屏幕动态居中,无论我改变框的高度和宽度与否。我发现了这个codeign我不知道怎么用它。有人能解释一下吗?
问题内容: 我有一个要在div中居中的SVG。div的宽度为900px。SVG的宽度为400像素。SVG的margin-left和margin- right设置为auto。不起作用,它的作用就像是左边距为0(默认值)。 有人知道我的错误吗? 问题答案: SVG默认为内联。添加到它,然后将按预期工作。
我有一个登录页面,有两个文本字段:用户名、密码和登录按钮,用户名字段在最上面,密码字段在下面,登录按钮在底部。我希望它们始终位于页面的中心,无论是垂直还是水平。我试过这个: 它只是水平居中。我怎样才能使它水平和垂直居中?
问题内容: 我有一个宽度为100%的div。 我想将按钮居中放置,该怎么办? 问题答案: 更新的答案 由于我注意到这是一个积极的答案,所以进行了更新,但是Flexbox现在是正确的方法。 现场演示 垂直和水平对齐。 只是水平的(只要主伸缩轴是水平的,这是默认值) 使用固定宽度且没有flexbox的原始答案 如果原始海报想要垂直和居中对齐,则对于固定按钮的宽度和高度非常容易,请尝试以下操作 CSS