我无法在Java中为渲染字母绘制矩形。
如您所见,字母Y
,1
和V
位于矩形之外。他们需要完全在里面。我使用的字体没有重叠的字母,所以这不应该是一个问题。
for (String word : trainingText) {
for (char c : word.toCharArray()) {
charWidth = fontMetrics.charWidth(c);
charHeight = fontMetrics.getAscent();
charX0 = xPos; //top left corner of character
charY0 = yPos;
charX1 = xPos + charWidth;
charY1 = yPos + charHeight;
graphics.drawRect((int) charX0, (int) charY0, charWidth, charHeight);
xPos += charWidth;
}
}
我认为我的代码太简单了,因为矩形中的字母总是粘在左边。我希望字母居中,这可能需要更复杂的计算。