AWT - rotate the entire Swing panel
У меня проблема с AWT при повороте графики на панели на 90 градусов. Я могу повернуть графику на панели, приведя к Graphics2D и применив преобразование. Проблема в том, что если область панели прямоугольная, то часть графики становится скрытой. Я не могу установить границы клипа для всей области. Если, например, окно короткое и широкое, тогда область клипа становится узкой и высокой. Если окно узкое и высокое, область клипа становится короткой и широкой. Я не знаю, как отменить это поведение.
Есть ли лучший способ сделать это или способ обойти проблему?
РЕДАКТИРОВАНИЕ РЕШЕНО:- Оказывается, что переопределение методов getWidth() и getHeight() - плохая идея
1 ответ
Как показано здесь, переопределить getPreferredSize()
на ограждающей панели, чтобы вернуть Dimension
который может приспособить ваш желаемый вид, например, Math.max(width, length)
, Как показано здесь,
Переведите изображение в начало координат.
Поверните изображение.
Переведите изображение обратно в центр панели.