Я думаю, что скриншот стоит пару абзацев
Лучший способ сделать это - проверить длину строки и, в зависимости, дать / взять \t, но это просто кажется не элегантным. Есть ли более простой / лучший способ?
\t
Я бы использовал JTable для этого. Вы можете поместить один в JScrollPane. Это автоматически выровняет столбцы. Кроме того, вы получите заголовки столбцов, которые помогут понять, что означают данные.
Если вы хотите придерживаться простого текста и иметь верхнюю границу длины полей (что вам необходимо для выравнивания), то вы можете использовать printf.