2016-10-03 3 views
-1

Я хочу повернуть текст на моем JComponent по вертикали, JComponent также содержит границу, окрашенную в paintComponent метод, я не хочу вращать эту границу, только текст.Поворот текста на JLabel без поворота границы

Я уже использовал функцию graphics2Drotate, но она также вращает границу компонента, которая не работает, когда мой компонент является прямоугольником.

Пожалуйста, предложите мне любой подход, чтобы повернуть только текст. Это в настоящее время мой JComponent:

enter image description here

И что я хочу:

enter image description here

На самом деле это не дублировать. Я уже использовал ниже код:

Graphics2D g2 = (Graphics2D) g; 
       g2.rotate(Math.PI/4, bi.getWidth()/2, bi.getHeight()/2); 

но проблема в том, что он также вращает границу, я не хочу этого.

Все предлагаемые решения не работают, они также вращают границу. Я не хочу вращать границу, только текст. Это то, что я получаю после вращаться с некоторым углом: enter image description here

+0

Вместо кодирования вы можете легко повернуть фотографию, а затем использовать ее в своем коде –

+0

@Mohsen_Fatemi, на самом деле это текст, а не фотография, то есть мой JComponent с белой рамкой, в которой я рисую другой текст. –

+0

Hi @kevto, на самом деле я уже упоминал этот пример, но это не то, что мне нужно. Есть ли какой-то подход, где я могу вращать только определенную часть JComponent? –

ответ

-1

Помните, что Graphics объекта имеет много состояния в нем. Это включает в себя текущее преобразование. Ваш текущий код изменяет состояние и не восстанавливает его в исходную ситуацию.

После нанесения изображения вы должны «отменить» поворот. Это можно сделать либо путем поворота в другом направлении, либо путем создания нового графического объекта (g2.create()), в частности для рисования повернутого содержимого. Если вы сделаете последнее, убедитесь, что созданный временный графический объект dispose().

+0

Downvoter, интересно прокомментировать почему? – jackrabbit

Смежные вопросы