Как лучше всего повернуть несколько кнопок в jpanel вокруг центральной точки? - PullRequest
0 голосов
/ 02 декабря 2010

Я работаю над проектом, в котором у меня есть фоновое изображение с особыми интересами.Каждая из этих конкретных точек будет иметь собственный класс кнопки, наложенный на нее, так что, когда я нажимаю на точку, я фактически нажимаю кнопку.Однако я хотел бы иметь возможность вращать фоновое изображение и иметь кнопки, вращающиеся вместе с изображением, чтобы пользовательские кнопки все еще накладывались на определенные точки.Какие-нибудь советы, как мне поступить?

1 Ответ

0 голосов
/ 02 декабря 2010

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

Если вы хотите сделать последнее, то дела обстоят немного сложнее, так как вам, вероятно, придется использовать AffineTransforms, вращать экземпляр, чтобы вращать контейнер, и вам нужно будет выполнить то же преобразование в точке нажмите / кликните / отпустите кнопку мыши, чтобы повернутые кнопки получали правильные нажатия. Если контейнер не квадратный, все становится еще сложнее.

...