现在我觉得我一直在网上寻找如何在文本上添加边框,所以我决定在这里问,因为你们总是知道答案。
那么,在 Java 中,如何在 Graphics2D 元素上绘制的字符串中的每个字母周围绘制大约 2 像素的边框?
像这样:
提前致谢。
最佳答案
我在 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 .
关于java - 绘制字符串的粗边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7679459/