| Код | public int drawStrings(Graphics g, int x, int y, int w, String str) { int ii, pointS = 0, len = str.length(); for ( ii = 0; ii >= 0; ) { ii = str.indexOf(" ", ii + 1); if ( ii < 0 ) {//больше нет пробелов if ( getLen(str) > w ) { g.drawString(str.substring(0, pointS), x, y, Graphics.TOP|Graphics.LEFT); str = str.substring(pointS + 1); y += getHight(); } g.drawString(str, x, y, Graphics.TOP|Graphics.LEFT); return y + fontB.getHeight(); } else { if ( fontB.stringWidth(str.substring(0, ii)) < w ) { pointS = ii; } else { g.drawString(str.substring(0, pointS), x, y, Graphics.TOP|Graphics.LEFT); str = str.substring(pointS + 1); pointS = ii = 0; y += fontB.getHeight(); } } } return y; }
|
Перенос только по пробелу, так как по граматике (или чему там еще) после запятой и точки обязательно должен идти пробел. Возможно чтото лишнее есть, написано на вскидку. Первый и последний парамерт понятен надеюсь, X и Y это координаты начала рисования, W - ширина, которую можно использовать. fontB - фонт которым рисуете. |