У меня есть настраиваемый компонент GameViewCanvas extends JPanel
, который будет содержать несколько фрагментов (текстуры 800x800). Теперь в GameViewCanvas я переопределил метод paint()
, чтобы он рисовал дочерние элементы на трансформированном холсте (масштабирование, панорамирование и вращение).Swing: передать события дочерним компонентам преобразованного родителя
Теперь я хочу делегировать событиям, таким как MouseEvent и MouseMotionEvent, соответствующим детям - проблема, конечно, в том, что Swing понятия не имеет, где дети находятся на фактическом фрейме. Я думал, что мог бы просто переопределить метод, например getComponentAt
, в родительском, но такой удачи не было - я считаю, что Swing напрямую перебирает детей.
Возможно, я собираюсь все это неправильно, поэтому, пожалуйста, совет. Спасибо заранее.
Интересный вопрос, 1+. Я не знаю решения, но если это была моя проблема, я бы искал исходный код Swing, чтобы узнать, может ли это дать мне ключ. –
Google 'JXLayer' (AKA' JLayer' в Java 7). Это делает именно то, что вы только что попросили. Поскольку они исчезли из Сети, я предоставил все примеры [здесь] (https://www.dropbox.com/s/re1hmvypp19oqy1/JXLayer-PBJar-Demo.zip) – MadProgrammer