Si tenemos un p�rrafo de texto con estilo que queremos que quepa dentro de una anchura especifica, podemos usar LineBreakMeasurer, que permite que el texto con estilo se rompa en l�neas que caben dentro de un espacio visual. Como hemos aprendido en Mostrar Gr�ficos con Graphics2D, un objeto TextLayout representa datos de caracteres con estilo, que no se pueden cambiar, pero tambi�n permite acceder a la informaci�n de distribuci�n. Los m�todos getAscent y getDescent de TextLayout devuelven informaci�n sobre la fuente usada para posicionar las l�neas en el componente. El texto se almacena como un AttributedCharacterIterator para que los atributos de fuente y tama�o de punto puedan ser almacenados con el texto.
�Ejemplo: LineBreakSample
El siguiente applet posiciona un p�rrafo de texto con estilo dentro de un componente,
usando LineBreakMeasurer, TextLayout y
AttributedCharacterIterator.

Esta es una imagen del GUI del applet. Para ajecutar el applet, pulsa sobre ella. El applet aparecer� en una nueva ventana del navegador.
El c�digo completo del applet est� en LineBreakSample.java .
El siguiente c�digo crea un bucle con la cadena vanGogh. El inicio y final del bucle se recupera y se crea una nueva l�nea.
AttributedCharacterIterator paragraph = vanGogh.getIterator();
paragraphStart = paragraph.getBeginIndex();
paragraphEnd = paragraph.getEndIndex();
lineMeasurer = new LineBreakMeasurer(paragraph,
new FontRenderContext(null, false, false));
El tama�o de la ventana se utiliza para determinar d�nde se deber�a romper la l�nea y se crea un objeto TextLayout por cada l�nea del p�rrafo.
Dimension size = getSize();
float formatWidth = (float) size.width;
float drawPosY = 0;
lineMeasurer.setPosition(paragraphStart);
while (lineMeasurer.getPosition() < paragraphEnd) {
TextLayout layout = lineMeasurer.nextLayout(formatWidth);
// Move y-coordinate by the ascent of the layout.
drawPosY += layout.getAscent();
/* Compute pen x position. If the paragraph is
rogth-to-left, we want to align the TextLayouts
to the right edge of the panel.
*/
float drawPosX;
if (layout.isRIGHTToLEFT()) {
drawPosX = 0;
}
else {
drawPosX = formatWidth - layout.getAdvance();
}
// Draw the TextLayout at (drawPosX, drawPosY).
layout.draw(graphics2D, drawPosX, drawPosY);
// Move y-coordinate in preparation for next layout.
drawPosY += layout.getDescent() + layout.getLeading();
}