AWT - rotate the entire Swing panel

У меня проблема с AWT при повороте графики на панели на 90 градусов. Я могу повернуть графику на панели, приведя к Graphics2D и применив преобразование. Проблема в том, что если область панели прямоугольная, то часть графики становится скрытой. Я не могу установить границы клипа для всей области. Если, например, окно короткое и широкое, тогда область клипа становится узкой и высокой. Если окно узкое и высокое, область клипа становится короткой и широкой. Я не знаю, как отменить это поведение.

Есть ли лучший способ сделать это или способ обойти проблему?

РЕДАКТИРОВАНИЕ РЕШЕНО:- Оказывается, что переопределение методов getWidth() и getHeight() - плохая идея

1 ответ

Как показано здесь, переопределить getPreferredSize() на ограждающей панели, чтобы вернуть Dimension который может приспособить ваш желаемый вид, например, Math.max(width, length), Как показано здесь,

  • Переведите изображение в начало координат.

  • Поверните изображение.

  • Переведите изображение обратно в центр панели.

Другие вопросы по тегам