// Program 11.3: An applet that wraps text import java.applet.Applet; import java.awt.Graphics; import java.awt.FontMetrics; import java.util.StringTokenizer; public class WrapTextApplet extends Applet { String input_from_page; public void init() { input_from_page = getParameter("Text"); } public void paint(Graphics g) { int i = 0; int linewidth = 0; int margin = 5; StringBuffer sb = new StringBuffer(); FontMetrics fm = g.getFontMetrics(); StringTokenizer st = new StringTokenizer(input_from_page); while (st.hasMoreTokens()) { String nextword = st.nextToken(); if (fm.stringWidth(sb.toString() + nextword + margin) < size().width) { sb.append(nextword); sb.append(' '); } else if (sb.length() == 0) { g.drawString(nextword, margin, ++i*fm.getHeight()); } else { g.drawString(sb.toString(), margin, ++i*fm.getHeight()); sb = new StringBuffer(nextword + " "); } } if (sb.length() > 0) { g.drawString(sb.toString(), margin, ++i*fm.getHeight()); } } }