如何使Component中的mouseEvent在子组件中被识别?

时间:2009-12-23 17:17:07

标签: java

我有一个JTabPane,我已经添加了一个MoustListener(用于标签的标题)。 当我按下右键时,会弹出一个弹出菜单。 当我在窗口的任何地方按下鼠标按钮时,我需要使它不可见。我怎样才能做到这一点??

(MouseListener仅适用于标签的标题。)

3 个答案:

答案 0 :(得分:1)

  

我需要让它看不见   在任何地方按下鼠标按钮   窗口。我怎么能这样做?

这是JPopupMenu的默认行为,因此您无需执行任何特殊操作。

阅读JPopupMenu API,您将找到有关“如何使用菜单”的Swing教程的链接。本教程包含使用弹出菜单的工作示例。将您的代码与教程进行比较,看看有什么不同。我们无法帮助您,因为我们不知道您的代码是什么样的。

如果您需要更多帮助,请发布SSCCE

答案 1 :(得分:0)

在过去的好时光里,我为解决这个问题所做的就是为所有组件注册一个鼠标监听器。 你可以编写一个相当简单的函数,以递归方式遍历顶级容器并执行它。

这与Java 1.1有关,所以今天可能有更好的选择。

答案 2 :(得分:0)

离我头顶的一个方法是获取点击的坐标,然后使用另一种方法来确定点击是在选项卡上还是在选项卡的内容区域内。