用 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"
(♥).
我试过 ♡
、♥
和 \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"
(♥).