Člověk je zblblý, že je šířka vždycky větší a pak to tak nastaví, i když nechtěl. Ano, parametry obdélníku jsou zadány obráceně.
var rectangle = new Rectangle(20, 100);
var text = new Text("X");
text.setFont(Font.font(Math.min(rectangle.getHeight(), rectangle.getWidth() * 4)));
Každopádně díky za tu metodu. Akorát to nebylo max, ale min.