MouseListener事件在Java中不起作用

时间:2011-03-11 15:30:01

标签: java swing mouseevent

我正在创建一个应用程序,其中的图像列表将显示在JList中。 每个图像将显示为嵌入在面板中。当用户将光标移动到图像上时,图像应在另一帧中放大显示。

现在,我在显示事件的每个面板上实现了MouseListner接口。我在每个面板上添加了mouseListner()。

现在,当用户点击或移入或移出面板时,没有发生任何事件。

是不是因为当我点击图片时,我实际上是在点击JLabel而不是直接在面板上?

可能是其他原因?

2 个答案:

答案 0 :(得分:1)

  

是不是因为当我点击图片时,我实际上是在点击JLabel而不是直接在面板上?

您实际上是在点击JList。渲染器不是真正的组件。

您需要将MouseListener添加到JList,然后使用JList的indexToLocation(...)方法确定单击了哪个呈现项。

编辑:

实际上应该是JList的locationToIndex(...)方法。有时我的手指没有输入我的想法:)

答案 1 :(得分:0)

如果您想捕获鼠标移动事件,则需要实施MouseMotionListener而不是MouseListener