Как вы оборачиваете строки, используя Graphics2D drawString.
Видел несколько примеров, подобных этому замена Drawstring
Но это не работает, так как у меня есть вертикально выровненный текст, а высота шрифта из графики дает мне 0.
Вы можете использовать JTextArea?
Эта запись показывает, как можно изменить размер текстовой области по размеру текста.