用 drawString 绘制心形符号

Draw heart symbol with drawString

我试过 ♡\u2661 作为文本,但我无法绘制心形符号。

g2d.setColor(Color.RED);
g2d.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 70));
g2d.drawString(text, 10, 10);

您可以尝试使用 \u2665 而不是 \u2661。简单地做:

g.setColor(Color.RED);
g.drawString("\u2665", 10, 10);

\u2665就是unicode for heart shape。供参考:

♥ \u2665
♦ \u2666
♣ \u2663
♠ \u2660

问题不在于没有画出心形。它绘制的,但在可见区域之外。

您指定的字体大小为 70,并且您正在 (10, 10) 位置绘制心形。 Graphics2D.drawString(str, x, y) Javadoc 指定:

The baseline of the first character is at position (x, y) in the User Space.

这意味着心形的基线将位于 y = 10 但由于您指定的字体大小为 70,因此您不会看到它。

您应该以更高的 y 值绘制字符串,例如 100:

g2d.setColor(Color.RED);
g2d.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 70));
g2d.drawString(text, 10, 100);

旁注:"\u2661" (♡) 是一颗心的 Unicode 值。如果你想画一个填充的心,使用 "\u2665" (♥).