现在我觉得我一直在网上寻找如何在文字上添加边框,所以我决定在这里问,因为你们总是知道答案。
那么,在java中,如何在Graphics2D元素上绘制的字符串中的每个字母周围绘制约2个像素的边框?
像这样:
提前谢谢。
答案 0 :(得分:7)
我在Javaworld中找到了一个简单的解决方案,用于在Java中绘制文本大纲:
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类的一种方法。可以找到做大纲的示例here。
答案 1 :(得分:5)
请参阅:Transforming Shapes, Text, and Images。在变换示例中将“primitive”设置为“text”,将“rendering”设置为“Stroke and Fill”。