проведу код: | Код | TextLayout layout; ArrayList lines = new ArrayList(); ArrayList layouts = new ArrayList(); Graphics2D g2d = (Graphics2D) g; g2d.setFont(font); StringTokenizer tokenizer = new StringTokenizer(string, "\n", false); while (tokenizer.hasMoreElements()) { lines.add(tokenizer.nextToken()); } for (int i = 0; i < lines.size(); i++) { AttributedString paragraphText = new AttributedString((String) lines.get(i)); AttributedCharacterIterator characterIterator = paragraphText.getIterator(); paragraphText.addAttribute(TextAttribute.FONT, font); LineBreakMeasurer lineBreaker = new LineBreakMeasurer(characterIterator, new FontRenderContext(null, false, true)); layout = lineBreaker.nextLayout((float) tabWidth); layout.draw(g2d, point.x + 46, y); y += fontHeight; layouts.add(layout); while (lineBreaker.getPosition() != characterIterator.getEndIndex()) { layout = lineBreaker.nextLayout((float) width); layout.draw(g2d, point.x, y); layouts.add(layout); y += fontHeight; } }
|
Этот код берет строчку и выводит ее согласно абзацам с отступами и заданой шириной (для разных форматов страниц), строчка целиком есть, а вот как получить подстрочки с нужной шириной, причем с учетом абзацев? |