Как повернуть текст Swing?

есть ли способ повернуть текст Swing, например, в JLabel между 0 и 360 (или между -180 и 180) градусами в 1 градусных шагах?

3 ответов


да. Посмотрите на Graphics2D.повернуть(). Для JLabel, я думаю, вы можете переопределить метод paintComponent() для вызова rotate(x), затем вызвать существующий paintComponent (), затем вызвать rotate(-x). например,

protected void paintComponent(Graphics g) {
   Graphics2D g2 = ( Graphics2D )g;
   g2.rotate(theta);
   super.paintComponent(g2);
   g2.rotate(-theta);
}

Я не пробовал это. Возможно, Вам потребуется добавить смещение, см. Graphics2D.поворот (двойной тета, двойной x, двойной y)


Я не считаю, что Swing предлагает явную поддержку для этого.
Однако вы можете превратить текст в изображение и повернуть его, используя класс AffineTransform.

вот пример кода, по-видимому, взяты из книги "Swing Hacks", для написания текста назад. Вы можете легко изменить его для поворота текста, хотя вам придется добавить код для эффекта анимации.


не JLabel, но jeditorpane содержание http://java-sl.com/vertical.html