现在我觉得我一直在网上寻找如何在文本上添加边框,所以我决定在这里问,因为你们总是知道答案.
那么,在java中,如何在Graphics2D元素上绘制的字符串中的每个字母周围绘制约2个像素的边框?
像这样:
提前致谢.
我在Javaworld中找到了一个简单的解决方案,用于在Java中绘制文本大纲:
Run Code Online (Sandbox Code Playgroud)g.setColor(Color.red); g.drawString("Outline", ShiftWest(x, 1), ShiftNorth(y, 1)); g.drawString("Outline", ShiftWest(x, 1), ShiftSouth(y, 1)); g.drawString("Outline", ShiftEast(x, 1), ShiftNorth(y, 1)); g.drawString("Outline", ShiftEast(x, 1), ShiftSouth(y, 1)); g.setColor(Color.yellow); g.drawString("Outline", x, y);
基本上,在绘制所需颜色的字符串之前,首先绘制在每个方向上移动的相同字符串.这适用于一个像素轮廓,但不能很好地缩放到粗轮廓,因为如果重复多次移动,角落可能会有间隙.
另一种解决方案是使用转换和getOutline(),它是TextLayout类的一种方法.可以在此处找到做大纲的示例.