Каково решение этой проблемы?
Я добавил слушатель мыши в JPanel, но эта панель полна кнопок, которые покрывают всю область JPanel.
Пример (псевдо) код:
Create JPanel
Set to GridLayout
Add 25 buttons (5x5 grid)
Add MouseListener to JPanel
MouseListener / MouseMotionListener:
onMouseMove { print out X,Y co-ords of mouse }
Координаты никогда не распечатываются, пока я не доберусь до самого края контейнера JPanel, потому что кнопкиблокирование всего остального.
Как заставить слушатель мыши работать над всеми компонентами панели, не добавляя слушателя к каждому компоненту - или я должен добавить слушателя к каждому компоненту?
ДОБАВЛЕННАЯ ИНФОРМАЦИЯ: Я пытаюсь добавить жест касания для системы с сенсорным экраном (пролистывание панели вызывает действие).Я довольно уверен в том, что могу распознать этот жест, но я действительно искал «лучший» способ, чем добавить копию слушателя для каждого компонента (это было бы еще хуже для меня, потому что компоненты меняются).
Я собираюсь вместо этого попытаться добавить его в glassPane ... (в настоящий момент getRootPane () дает мне NullPointerException)
EDIT: Теперь я знаю, что яЯ пытаюсь получить метод RootPane () из JPanel, который не является корневым контейнером, поэтому я получаю null
.Мне нужно сделать это на главном JFrame.
EDIT2: Хорошо, я сделал это (добавил стеклянную панель в основной JFrame), сначала у меня возникла проблема, потому что я несделать это:
myGlassPane.setVisible(true);
Так что, похоже, это не работает.Но как только я это сделал, все, что мне нужно было сделать, это установить для непрозрачного флага значение false, чтобы сделать его прозрачнымнад кнопками и все такое, однако кнопки не работают, потому что над ними есть панель.