用drawString绘制心脏符号

时间:2015-11-09 09:42:13

标签: java swing graphics2d

我已尝试♡\u2661作为文字,但我无法绘制心脏符号。

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

2 个答案:

答案 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);

\u2665unicode for heart shape。供参考:

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