Пузырится в модели событий AWT? - PullRequest
2 голосов
/ 17 сентября 2010

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

Почему?

Похоже, что всплывающее окно события работает только для события действия, так что модель Swing реализует?

Какие типы слушателей работают впузырящийся способ?

1 Ответ

2 голосов
/ 17 сентября 2010

Пузырьки событий в AWT работают только для событий мыши, и только в том случае, если на дочернем компоненте нет прослушивателей мыши.

Это может быть довольно запутанным, например, если у вас есть JComboBoxобычно реализуется PL & F с текстовым полем и компонентом кнопки.Возможно, вы захотите посмотреть «стеклянные панели».

Я предлагаю как можно больше игнорировать иерархию содержимого.Также создайте слушателей, которые знают их контекст и используют точку getSource.И не расширяйте классы (такие как JFrame, JPanel и Thread) без необходимости.

...