Повернул текст следующим кодом:
JLabel lblNewLabel = new JLabel("New label");
lblNewLabel.setBounds(66, 54, 74, 212);
lblNewLabel.setBorder(new LineBorder(new Color(0, 0, 0)));
lblNewLabel.setVerticalTextPosition(SwingConstants.CENTER);
lblNewLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
lblNewLabel.setHorizontalTextPosition(SwingConstants.CENTER);
lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
Font f = new Font("Dialog", Font.BOLD | Font.ITALIC, 13);
f = f.deriveFont(AffineTransform.getRotateInstance(Math.PI/2));
текст начинается с середины (по вертикали), т.е. "N" в середине, а остальной текст — ниже. Как выравнять его?
Пробовал подогнать через
getRotateInstance(double theta, double anchorx, double anchory)
Но тут каждую надпись (например не "New label", а "zzZZzz" приходится подгонять индивидуально через double anchorx, double anchory, а как их вычислить для текста — не врубаюсь.
Если выставить под 45 через Math.PI/4 — все равно "N" в надписи "New label" расположена в середине по вертикали.