如果我在一个有一些按钮的 JFrame
上实现一个 Action 事件,它会给我
通过 getSource
单击按钮,但如果我在同一帧上实现鼠标事件
它不会让我触发按钮的事件,而只是针对那个 JFrame
。
为什么?
事件冒泡似乎只适用于 Action 事件,那么 Swing 实现的模型是什么?
哪些监听器类型以冒泡方式工作?
最佳答案
AWT 中的事件冒泡仅适用于鼠标事件,并且仅当子组件上没有鼠标监听器时才有效。
如果您有一个 JComboBox
,它通常由 PL&F 实现,带有一个文本字段和一个按钮组件,这可能会非常困惑。您可能想查找“玻璃板”。
我建议尽可能忽略包含层次结构。还可以创建了解其上下文的监听器并点使用 getSource
。并且不要在不必要的情况下扩展类(例如 JFrame
、JPanel
和 Thread
)。
关于java - 在 AWT 事件模型中冒泡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3735461/