如何在Java中将drawString的文本居中?我希望它可以动态地沿屏幕居中,而不管是否更改框的高度和宽度。我找到了这段代码,但我不知道如何使用它。有人可以解释吗?
String text = "...";
Graphics2D g2d = (Graphics2D)g.create();
FontMetrics fm = g2d.getFontMetrics();
int x = (getWidth() - fm.stringWidth(text)) / 2;
String text = "...";
Graphics2D g2d = (Graphics2D)g.create();
FontMetrics fm = g2d.getFontMetrics();
int y = ((getHeight() - fm.getHeight()) / 2) + fm.getAscent();
也在这里展示
还可以看一下2D图形和使用文本API
问题内容: 使a (例如a 或a)居中的最简单方法是什么? 问题答案: 从这个连结 如果使用的是Java 1.4或更高版本,则可以在对话框,框架或窗口上使用简单的setLocationRelativeTo(null)方法将其居中。
问题内容: 如何增加字体大小? 问题答案: 其中fontSize是一个int。drawString的API指出x和y参数是坐标,与文本的大小无关。
问题内容: 我目前正在为我的菜单系统上 的Java 游戏,我不知道如何可以从中心的文本,因此,如果我想画一个文本,其中心点是在和,和文字像素宽,像素高,文字将以和开头。 可以在绘制文字之前确定其宽度吗? 这样一来,数学就很容易了。 编辑: 我也想知道是否可以获取文本的高度,以便我也可以垂直居中。 任何帮助表示赞赏! 问题答案: 我用这个问题的答案。 我使用的代码如下所示:
问题内容: 我有一个宽度为100%的div。 我想将按钮居中放置,该怎么办? 问题答案: 更新的答案 由于我注意到这是一个积极的答案,所以进行了更新,但是Flexbox现在是正确的方法。 现场演示 垂直和水平对齐。 只是水平的(只要主伸缩轴是水平的,这是默认值) 使用固定宽度且没有flexbox的原始答案 如果原始海报想要垂直和居中对齐,则对于固定按钮的宽度和高度非常容易,请尝试以下操作 CSS
问题内容: 尽管进行了许多尝试,但我仍无法获得我想要看到的结果- 文本在JLabel内居中,而JLabel则在BorderLayout中居中。我说“有点”是因为在窗口的右下角还应该有另一个标签“状态”。这是负责的代码: 感谢您提供的任何帮助。 问题答案:
问题内容: 如果我想根据 Bootstrap 4中浏览器窗口的大小将导航项(链接)放在导航栏中,该怎么办?请看一下代码: 现在,我想根据浏览器的宽度将div“ navbar-nav”居中。我尝试过的一件事是给它mr-auto和ml-auto,它的确使它居中,但不完全准确。实际上,它根据宽度“浏览器窗口宽度-徽标宽度”将其居中。我希望它恰好位于屏幕中间。 我也尝试过将位置更改为绝对位置,但是同样,在