package utils; import java.awt.*; import java.util.*; public class WrappedString { private ArrayList lstStrings; private FontMetrics metrics; public WrappedString(String str, FontMetrics metrics, int width) { lstStrings = new ArrayList(); this.metrics = metrics; while(!str.equals("")) { int cur = 1; int lastSpace = -1; while(cur <= str.length() && metrics.stringWidth(str.substring(0, cur)) < width) { if(str.substring(cur-1, cur).equals(" ")) lastSpace = cur-1; cur++; } if(lastSpace == -1 || cur > str.length()) { lstStrings.add(str.substring(0, cur-1)); str = str.substring(cur-1); }else { lstStrings.add(str.substring(0, lastSpace)); str = str.substring(lastSpace+1); } //get rid of leading spaces while(str.length() > 0 && str.substring(0,1).equals(" ")) str = str.substring(1); } } public int getLineCount() { return lstStrings.size(); } public String getLine(int index) { return lstStrings.get(index); } public FontMetrics getMetrics() { return metrics; } public void draw(Graphics g, int x, int y) { for(int i=0; i