我已尝试♡
,♥
和\u2661
作为文字,但我无法绘制心脏符号。
g2d.setColor(Color.RED);
g2d.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 70));
g2d.drawString(text, 10, 10);
答案 0 :(得分:5)
问题不在于没有画出心脏的事实。它是 绘制但在可见区域之外。
您指定的字体大小为70,并且您正在位置(10, 10)
处绘制心脏。 Graphics2D.drawString(str, x, y)
Javadoc指定:
第一个字符的基线位于用户空间中的
(x, y)
位置。
这意味着心脏的基线将位于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"
(♥)。
答案 1 :(得分:3)
您可以尝试使用\u2665
代替\u2661
。只需:
g.setColor(Color.RED);
g.drawString("\u2665", 10, 10);
\u2665
是unicode for heart shape。供参考:
♥ \u2665
♦ \u2666
♣ \u2663
♠ \u2660