java - 如何将字符串完美居中 Jpanel 中心

标签 java string swing layout jpanel

我正在绘制 2 个字符串,其中一个包括我的名字、中间名、姓氏,另一个是我的国家/地区,我在位于中心面板的绘画组件中创建它们,但是,我尝试了许多不同的方法,计算将该字符串居中,但没有一个能够正确准确地工作,这是一种准确的方法吗?这是我迄今为止尝试过的计算示例

posX=((getWidth()-fm.stringWidth(phrase))/2);
posY= ((getHeight()-fm.getHeight())/2);  

最佳答案

由于文本是从基线向上渲染的,因此您需要调整 y 位置以将其考虑在内:

posY = ((getHeight() - fm.getHeight()) / 2) + fm.getAscent();

否则,您会将文本围绕基线居中,而不是“绝对”

这已得到证明 in this example

您还应该看看Font Concepts了解更多详情

关于java - 如何将字符串完美居中 Jpanel 中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47167404/

相关文章:

java - 独特元素的过滤器列表

java - 从类型参数扩展

java - 字符串变量可能尚未初始化(错误指向第 34 行)

java - 用空格显示值

javascript - 尝试组合排除和包含正则表达式

java - JLayeredPane 重绘删除了一些图像

java - JPanel从其原始位置向外动态生成

java - 如何在 Java 中将选定的列从数据库获取到 JTable

java - 如何使用 Java 中的流将二维整数数组转换为二维 boolean 数组?

java - 使用Java简单串行连接器连接电脑与arduino