问题:我想让 GraphicContext 对象以等宽字体描边文本。如何做到这一点?
问题:我正在使用 JavaFX。我有一个 Canvas 对象和一个 GraphicsContext 对象。我想使用 GraphicsContext 的 strokeText() 方法在画布上绘制文本。在调用 strokeText() 之前,我使用 GraphicsContext 对象的 setFont() 将字体设置为等宽字体。重要的是,我要在画布上绘制的字符串中的所有字符都具有相同的宽度。我尝试使用 Courier、Courier New 和 Monospace 字体在画布上绘制文本。我知道这些字体应该是等宽的。我已经导入了 javafx.scene.text.Font。
但是,当我检查画布上绘制的文本时,我每次都会看到: 我的画布对象左角的屏幕截图。
为了测试字体,我让 GraphicsContext 对象在各自的行上绘制了 5 次字符“_”、“a”、“i”和“W”。字符大小不等,行长度不同。另外,我没有看到字体有任何变化。
这是我用于创建画布、抽屉和抚摸文本的代码:
Canvas canvas = new Canvas(800,200);
GraphicsContext drawer = canvas.getGraphicsContext2D();
drawer.setFill(Color.BLACK);
drawer.setFont(new Font("Monospaced",15));
drawer.strokeText("_____", 5, 5);
drawer.strokeText("aaaaa", 5, 25);
drawer.strokeText("iiiii", 5, 45);
drawer.strokeText("WWWWW", 5, 65);
我在 java 中搜索了有关等宽字体的信息,尝试导入 java.awt.Fonts 并查看了 GraphicsContext 的 javadoc,但似乎没有什么能帮助我解决这个问题。
我究竟做错了什么?