0

我有一个 JPanel ( pNums),其中包含另一个 JPanel ( pGrid)。pGrid它本身包含一个JLabel[][]标签网格(在 GridLayout 中)。有一个鼠标侦听器可以从中捕获事件pGrid并对其执行相当重要的操作(例如,程序的整个功能都依赖于 mouseClicked() 事件)。这完美地工作,完全按照我想要的方式......直到我向标签添加工具提示。

一旦我调用JLabel.setToolTipText("SomeString")监听器就停止对事件做出反应(我已经尝试了大多数,如果不是所有的鼠标事件,它们似乎都没有被调用)。

顺便说一句,我确信它是工具提示,注释掉setToolTipText()完全解决了问题。当然,由于我需要工具提示,它也会导致许多其他问题。

我环顾四周,虽然我没有找到任何quite正确的东西,但我觉得我只是选择了一种非常糟糕的方式来做我想做的事。但我也想确定。

我可以同时获得事件和工具提示,还是应该回到绘图板。

4

1 回答 1

0

我认为您可以通过在工具提示外观上设置延迟来“修复”此问题。但是一旦它出现,用户无论如何都必须点击隐藏它。

http://docs.oracle.com/javase/7/docs/api/javax/swing/ToolTipManager.html

原因可能是,工具提示本身需要鼠标单击才能隐藏。

于 2012-10-01T07:53:33.977 回答