【问题标题】:How to Perfectly center a String in a Center Jpanel如何在中心 Jpanel 中完美地居中字符串
【发布时间】:2018-04-20 09:56:08
【问题描述】:

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

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

【问题讨论】:

  • “但是,我尝试了许多不同的方法和计算来使该字符串居中,但没有一种方法能正确工作且准确无误?” - 我'如果你能提供一个“不工作”的演示并与你试图实现的目标签订合同,那就太好了
  • 你为什么要做定制绘画?使用 JLabels 和适当的布局管理器。布局管理器将关注所有组件的中心。

标签: java string swing layout jpanel


【解决方案1】:

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

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

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

这是演示in this example

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 2015-03-23
    • 1970-01-01
    • 2016-06-04
    相关资源
    最近更新 更多