Я обрабатываю абзац, и для переноса слов я использую классы LineBreakMeasurer
и TextLayout
. Это фрагмент кода, который я использую, который легко доступен в Интернете:Изменение шрифта при рисовании абзаца в Java
void drawParagraph(Graphics2D g, String paragraph, float width) {
LineBreakMeasurer linebreaker = new LineBreakMeasurer(new AttributedString(paragraph)
.getIterator(), g.getFontRenderContext());
int y = 0;
while (linebreaker.getPosition() < paragraph.length()) {
TextLayout textLayout = linebreaker.nextLayout(width);
y += textLayout.getAscent();
textLayout.draw(g, 0, y);
y += textLayout.getDescent() + textLayout.getLeading();
}
}
Однако, я столкнулся с проблемой, когда я пытаюсь изменить шрифт. Хотя я меняю шрифт, вызывая g.setFont(new Font(...))
, абзац не отображается в этом шрифте. Однако, когда я пытаюсь использовать g.drawString()
, он работает как ожидалось.
Пожалуйста, помогите с этой проблемой.Спасибо заранее.