package elte.java2_utikalauz5.java2d; import java.awt.*; import java.awt.font.*; import java.awt.event.*; import java.text.*; /** peldaprogram tobbsoros szovegek megjelenitesere. @link.forrásfájl {@docRoot}/../data/java2d/src TobbsorosSzoveg.java @link.letöltés {@docRoot}/../data/java2d TobbsorosSzoveg.jar @since Java 2 Útikalauz programozóknak */ class TobbsorosSzoveg extends Canvas { /** Verziószám */ private final static long serialVersionUID = 15L; public void paint (Graphics g) { Graphics2D g2 = (Graphics2D) g; String szoveg = new String ("Ez egy nagyon hosszu szoveg, ezert tobb sorban kell megjeleniteni."); AttributedString as = new AttributedString (szoveg); AttributedCharacterIterator aci = as.getIterator (); FontRenderContext frc = g2.getFontRenderContext (); LineBreakMeasurer lbm = new LineBreakMeasurer (aci, frc); Font betutipus = new Font ("Times New Roman", Font.BOLD, 12); TextLayout megjelenito = new TextLayout (szoveg, betutipus, frc); g2.setColor (Color.red); lbm.setPosition (0); float x, y = 0.0f; final float sorSzelesseg = 100.0f; while (true) { megjelenito = lbm.nextLayout (sorSzelesseg); if (megjelenito == null) break; x = 0.0f; if (!megjelenito.isLeftToRight ()) x = sorSzelesseg - megjelenito.getAdvance (); y += megjelenito.getAscent (); megjelenito.draw (g2, x, y); y += megjelenito.getDescent () + megjelenito.getLeading (); } } public static void main (String[] args) { Frame f = new Frame (); f.add (new TobbsorosSzoveg ()); f.addWindowListener ( new WindowAdapter () { public void windowClosing (WindowEvent e) { System.exit (0); } } ); f.setSize (500, 300); f.setVisible (true); } }