В моем приложении я хотел бы перенаправить события мыши и клавиатуры на невидимую JPanel, и я бы хотел, чтобы эта JPanel обрабатывала их, как если бы они поступали из EDT.Причина этого заключается в том, что приложение имеет необязательное расширение для использования JOGL для некоторого рендеринга.Я уже написал материал для графического интерфейса на Swing, и поэтому я хотел бы повторно использовать этот код.К сожалению, вы не можете смешивать Swing с GLCanvas JOGL (я могу использовать GLJpanel, но это слишком медленно, чтобы его можно было использовать).В JOGL есть функция (Overlay), которая позволяет рисовать в экземпляре Graphics, чтобы он рисовался в контексте GL.Поэтому я могу вызвать jpanel.paint (g), чтобы нарисовать его на экране, используя оверлей, который отлично работает.Единственная оставшаяся часть головоломки состоит в том, чтобы каким-то образом использовать слушатели мыши и клавиатуры в GLCanvas для получения и пересылки событий в JPanel.
Я пытался использовать findComponentAt (mousex, mousey), чтобы получить компонент на JPanel в определенном месте, а затем вызывать dispatchEvent для этого компонента, но компоненты не реагируют на щелчки мыши или что-либо еще.Я предполагаю, что EDT выполняет какое-то преобразование из MouseEvent / KeyEvent в ActionEvent, чтобы заставить кнопки и текстовые поля работать должным образом.Если худшее приходит к худшему, я могу проверить, является ли компонент JButton, и использовать doClick, который, по крайней мере, даст мне некоторую функциональность.Но это не будет работать для компонентов, не относящихся к кнопкам, и не будет зависать при нажатии кнопок и т. Д.,.Я знаю, что мне, вероятно, следует просто использовать инструментарий OpenGL GUI для этого (например, FengGUI), но я полагаюсь на возможности рендеринга HTML в Swing и предпочел бы не пытаться переписать этот код.
Как я могу правильно получить MouseEvents из GLCanvas 'и переслать их в JPanel, чтобы обеспечить надлежащую обработку?(т. е. слушатель действия для кнопок активирован, при наведении курсора на кнопки отображается другое изображение, и т. д.)
Любые советы будут с благодарностью приняты