Java 绘制字符串时,绘制任意多边形而不是某些字符

Java 绘制字符串时,绘制任意多边形而不是某些字符,java,Java,我需要画一条文本线,其中一些指定的字符将被任意多边形替换。这些多边形必须使用图形直接绘制。方法。虽然Unicode包含一系列图形符号,但它们不适合此任务 我想知道,在字符串中出现的任何情况下,是否可以用多边形替换字符? 例如,如果我输入单词“Holly”并点击“enter”,第一个字母将被多边形替换。 如果我接着输入单词“蓟”,多边形的新位置将取代第二个字母 任何帮助/指导都将不胜感激。如果您想显示多边形,最简单的方法可能是选择Unicode符号 有很多多边形具有图形内容(甚至是雪人)假设实际多

我需要画一条文本线,其中一些指定的字符将被任意多边形替换。这些多边形必须使用图形直接绘制。方法。虽然Unicode包含一系列图形符号,但它们不适合此任务

我想知道,在字符串中出现的任何情况下,是否可以用多边形替换字符? 例如,如果我输入单词“Holly”并点击“enter”,第一个字母将被多边形替换。 如果我接着输入单词“蓟”,多边形的新位置将取代第二个字母


任何帮助/指导都将不胜感激。

如果您想显示多边形,最简单的方法可能是选择Unicode符号
有很多多边形具有图形内容(甚至是雪人)

假设实际多边形是用Unicode表示的,那么您所要做的就是替换字符串

System.out.println("Hello".replace('H', '\u25C6'));
产生

◆埃洛

这是完全可行的,因为它允许测量字符串的尺寸,就像用给定字体打印的一样。使用FontMetrics确定并计算字符串片段的位置,然后在其间绘制字符串片段和多边形

如果多边形必须非常特殊(可能是非Unicode字符?),或者它们所需的尺寸与所用字体中的字母尺寸非常不同,那么这种方法似乎是合理的


在Java早期,Unicode支持还不是很好,用这种方式绘制不受支持的国家字符并不少见。

我不明白你的意思。您是否正在询问在UI中更改多边形的角色?也许您应该解释为什么要这样做-现在很难理解您的要求…我需要将角色替换为使用drawPolygon()绘制的多边形方法。我完全不知道你是什么asking@Bohemian我需要用使用drawPolygon()方法绘制的多边形替换字符串中的字符。=)似乎合理,但“('H','\u25C6')”位是什么意思?我需要用使用drawPolygon()方法绘制的多边形替换字符。
String
s包含裸文本。你不能在里面插入非字符的东西。我明白了。因此,没有一种方法可以显示一个单词/短语,其中一个特定的字符显示为一个绘制的多边形?我也考虑过以某种方式改变多边形相对于字符在字符串中的位置,但我不完全确定该如何做,或者它是否会起作用。或者那样,或者我想也许我可以将字符串的其余部分环绕在多边形周围-但同样,我也不确定该如何做。@ElementOfMagic,我的例子中的多边形实际上是字符串中的一个正则字符。Java可以显示>110'000个字符中的任意一个。字符
25C6
恰好是一个多边形。这是迄今为止“绘制”多边形最简单的方法。如果您想要更有趣的东西,您需要将自定义多边形放置在文本上方或内部,如Audrius Meškauskas所述。我需要将角色替换为使用drawPolygon()方法绘制的多边形。谢谢,但我需要将角色替换为使用drawPolygon()方法绘制的多边形。E?这正是我的建议!