Как вращать текст Swing? - PullRequest
       4

Как вращать текст Swing?

7 голосов
/ 19 декабря 2011

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

Ответы [ 3 ]

9 голосов
/ 19 декабря 2011

Да. Посмотрите на Graphics2D.rotate (). Для 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.rotate (double theta, double x, double y)

2 голосов
/ 20 декабря 2011

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

2 голосов
/ 19 декабря 2011

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

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

...