Возможно, вам придется использовать класс FontMetrics.
Проанализируйте текст, выясните новые строки / перенос текста.
затем используйте
Font font = new Font("Verdana", Font.PLAIN, 10);
FontMetrics metrics = new FontMetrics(font);
Rectangle2D bounds = metrics.getStringBounds("string", null);
int widthInPixels = (int) bounds.getWidth();
и т.д ....
И если вы действительно хотите, опубликуйте свое решение здесь, чтобы оно было классным. :)