Gráficos Con Java 2D - Abaco
Gráficos Con Java 2D - Abaco
Gráficos Con Java 2D - Abaco
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Gráficos</strong> con <strong>Java</strong> <strong>2D</strong><br />
En esta página:<br />
●<br />
Dibujar Múltiples Líneas de Texto<br />
❍<br />
Ejemplo: LineBreakSample<br />
Dibujar Múltiples Líneas de Texto<br />
Tutor<strong>Java</strong> recomienda...<br />
Si tenemos un párrafo de texto con estilo que queremos que quepa dentro de una anchura<br />
especifica, podemos usar LineBreakMeasurer, que permite que el texto con estilo se rompa en<br />
líneas que caben dentro de un espacio visual. Como hemos aprendido en Mostrar <strong>Gráficos</strong> con<br />
Graphics<strong>2D</strong>, un objeto TextLayout representa datos de caracteres con estilo, que no se pueden<br />
cambiar, pero también permite acceder a la información de distribución. Los métodos getAscent y<br />
getDescent de TextLayout devuelven información sobre la fuente usada para posicionar las líneas<br />
en el componente. El texto se almacena como un AttributedCharacterIterator para que los<br />
atributos de fuente y tamaño de punto puedan ser almacenados con el texto.<br />
Ejemplo: LineBreakSample<br />
El siguiente applet posiciona un párrafo de texto con estilo dentro de un componente, usando<br />
LineBreakMeasurer, TextLayout y AttributedCharacterIterator.<br />
Esta es una imagen del GUI del applet. Para ajecutar el applet, pulsa sobre ella. El applet<br />
aparecerá en una nueva ventana del navegador.<br />
El código completo del applet está en LineBreakSample.java .<br />
El siguiente código crea un bucle con la cadena vanGogh. El inicio y final del bucle se recupera y se<br />
crea una nueva línea.<br />
AttributedCharacterIterator paragraph = vanGogh.getIterator();<br />
paragraphStart = paragraph.getBeginIndex();<br />
paragraphEnd = paragraph.getEndIndex();<br />
lineMeasurer = new LineBreakMeasurer(paragraph,<br />
new FontRender<strong>Con</strong>text(null, false, false));<br />
El tamaño de la ventana se utiliza para determinar dónde se debería romper la línea y se crea un<br />
objeto TextLayout por cada línea del párrafo.<br />
Dimension size = getSize();<br />
float formatWidth = (float) size.width;