astr.addAttribute(TextAttribute.FONT, lbl.getFont());
FontRenderContext frc = lbl.getFontMetrics(lbl.getFont()).getFontRenderContext();
LineBreakMeasurer lbm = new LineBreakMeasurer(astr.getIterator(), frc);
Vector<String> lines = new Vector<String>();
int prevOffs = 0;
int offs = lbm.nextOffset(width, text.length(), false);
do {
lines.add(text.substring(prevOffs, offs));
lbm.setPosition(offs);
prevOffs = offs;
offs = lbm.nextOffset(width, text.length(), false);