public int getWidth() { if (width == null) { width = new int[1]; int startingIndex = seg + 1; TextFlow textFlow = (TextFlow) getFlowFigure(); if (startingIndex == segs.length) { width[0] += trailingBorderSize; getContext().getWidthLookahead(textFlow, width); } else { String rest = segs[startingIndex]; for (int k = startingIndex + 1; k < segs.length; k++) rest += segs[k]; if (!textFlow.addLeadingWordWidth(rest, width)) { width[0] += trailingBorderSize; getContext().getWidthLookahead(textFlow, width); } } } return width[0]; }