gpt4 book ai didi

java - 如何在 Java2D 中剪辑字符串并在最后添加 ...?

转载 作者:行者123 更新时间:2023-12-02 05:30:08 25 4
gpt4 key购买 nike

我正在尝试在 Java Swing 应用程序中打印发票。我通过扩展 Printable 并实现方法 public int print(Graphics g, PageFormat pf, int page) 来实现这一点。

我想在列中绘制字符串,当字符串太长时,我想剪掉它并让它以“...”结尾。如何测量绳子并将其夹在正确的位置?

我的一些代码:

Font headline = new Font("Times New Roman", Font.BOLD, 14);
g2d.setFont(headline);
FontMetrics metrics = g2d.getFontMetrics(headline);
g2d.drawString(myString, 0, 20);

即如何将 myString 限制为最大 120px?

我可以使用metrics.stringWidth(myString),但我没有得到必须剪辑字符串的位置。

预期结果可能是:

A longer string that exc...
A shorter string.
Another long string, but OK

最佳答案

您可以通过将字符串宽度除以字符数来获得每个字符的平均宽度,从而获得良好的估计。然后,您可以获取剪辑距离,看看可以容纳多少个字符。将子字符串从开头到几乎那个距离(... 减去两个或三个)并将您的 ... 放在末尾。

验证新字符串是否被剪辑 - 如果是,请根据需要进行一些调整。毕竟,如果您有 WWWWWWWWiiiiii,您可能需要对其进行调整。但总而言之,这种方法会非常快。

关于java - 如何在 Java2D 中剪辑字符串并在最后添加 ...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2849334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com