我正在尝试在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
限制在最大120像素内?
我可以使用metrics.stringWidth(myString)
,但我不知道在哪里截断字符串。
期望的结果可能是:
A longer string that exc...
A shorter string.
Another long string, but OK