По разным причинам вы не можете сделать это встроенным. Вот один из способов центрирования
import java.awt.*
import groovy.swing.*
sb = new SwingBuilder()
sb.build {
f = frame(pack:true) {
label "<html>" + (("This is a very long label."*3) + "<BR>")*5
}
Point cp = GraphicsEnvironment.localGraphicsEnvironment.centerPoint
f.location = new Point((int)(cp.x - f.width), (int) (cp.y - f.height))
f.show()
}
Причина, по которой вы не можете установить его в атрибутах, заключается в том, что при оценке атрибутов дочерний узел еще нигде не был создан или сохранен. Один из вариантов - установить его как часть дочернего блока контента:
frame(show:true)
{
label "<html>" + (("This is a very long label."*3) + "<BR>")*5
current.pack()
Point cp = GraphicsEnvironment.localGraphicsEnvironment.centerPoint
current.location = new Point((int)(cp.x -current.width/2), (int)(cp.y - current.height/2))
}
(current является мета-переменной для содержащего узла).