我正在创建一个应用程序,其中的图像列表将显示在JList中。 每个图像将显示为嵌入在面板中。当用户将光标移动到图像上时,图像应在另一帧中放大显示。
现在,我在显示事件的每个面板上实现了MouseListner接口。我在每个面板上添加了mouseListner()。
现在,当用户点击或移入或移出面板时,没有发生任何事件。
是不是因为当我点击图片时,我实际上是在点击JLabel而不是直接在面板上?
可能是其他原因?
答案 0 :(得分:1)
是不是因为当我点击图片时,我实际上是在点击JLabel而不是直接在面板上?
您实际上是在点击JList。渲染器不是真正的组件。
您需要将MouseListener添加到JList,然后使用JList的indexToLocation(...)方法确定单击了哪个呈现项。
编辑:
实际上应该是JList的locationToIndex(...)方法。有时我的手指没有输入我的想法:)
答案 1 :(得分:0)
如果您想捕获鼠标移动事件,则需要实施MouseMotionListener
而不是MouseListener
。