1

我正在使用 Graphics 2D 制作音乐应用程序,并且我已经成功地绘制了五线谱和音符。我现在正在尝试画一个 G 谱号

G 谱号的图像

和一个 F 谱号

F 谱号的图像

如果有另一种可能的方法来做到这一点,我将不胜感激。

注意:我环顾了两天,看到了类似的问题,但我还没有看到解决方案。

4

1 回答 1

2

使用点和曲线不是最好的方法。感谢@David,我发现 unicode 效果最好。要使用 unicode 打印字符串,

import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;

import javax.swing.JFrame;

public class UnicodeText {
public static void main(String[] args) {
JFrame f = new JFrame() {
  public void paint(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
        RenderingHints.VALUE_ANTIALIAS_ON);

    Font font = new Font("Bravura", Font.PLAIN, 32);

    g2.setFont(font);
    g2.drawString("\uD834\uDD1E", 40, 80);// Gclef
    g2.drawString("\uD834\uDD22", 40, 80);// Fclef
  }
};
f.setSize(200,200);
f.setVisible(true);
}
}

在此处下载“bravura”字体并此处找到 unicode 标准图表

希望它可以帮助某人。

于 2016-09-02T06:30:03.380 回答