Вы действительно хотите вращать 4 разных изображения и перемещать их по площади, но всегда держите их в вертикальном положении? Или вы поворачиваете одно изображение так, чтобы после одного нажатия кнопки одно изображение находилось на его стороне? Если первое, то это можно легко сделать с помощью контейнера (JPanel), который использует BorderLayout, и наличия четырех JPanels с фоновыми изображениями и JButton, которые содержатся в контейнере JPanel в четырех точках компаса BorderLayout: BorderLayout.EAST, BorderLayout .WEST, BorderLayout.NORTH и BorderLayout.SOUTH (хотя гуру Java предпочитают использовать более новые константы, т. Е. BorderLayout.PAGE_START). Затем при нажатии кнопки удалите компоненты и повторно добавьте их, но в повернутом порядке.
Если вы хотите сделать последнее, то дела обстоят немного сложнее, так как вам, вероятно, придется использовать AffineTransforms, вращать экземпляр, чтобы вращать контейнер, и вам нужно будет выполнить то же преобразование в точке нажмите / кликните / отпустите кнопку мыши, чтобы повернутые кнопки получали правильные нажатия. Если контейнер не квадратный, все становится еще сложнее.