Вопрос: Я бы хотел, чтобы объект GraphicContext обводил текст моноширинным шрифтом. Как этого достичь?
Проблема: Я использую JavaFX. У меня есть объект Canvas и объект GrahpicsContext. Я хочу использовать метод strokeText () GraphicsContext для рисования текста на холсте. Перед вызовом strokeText () я использую setFont () объекта GraphicsContext, чтобы установить шрифт в моноширинный шрифт. Важно, чтобы все символы в строке, которые я хочу нарисовать на холсте, имели одинаковую ширину. Я попытался нарисовать текст на холсте шрифтами Courier, Courier New и Monospace. Я понял, что эти шрифты должны быть моноширинными. Я импортировал javafx.scene.text.Font.
Однако, когда я проверяю текст, нарисованный на холсте, я вижу это каждый раз: Снимок экрана левого угла моего объекта canvas.
Чтобы проверить шрифты, я сделал объект 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 и просмотрел javado c GraphicsContext, но, похоже, ничего не помогло мне с этой проблемой.
Что я делаю не так?