Java 有没有办法将双击操作侦听器添加到JScrollPane上?

Java 有没有办法将双击操作侦听器添加到JScrollPane上?,java,mysql,swing,jscrollpane,Java,Mysql,Swing,Jscrollpane,我一直在编写以下代码,但我无法双击JScrollPane。这是我的代码: 但是,使用此命令会引发一个错误:JScrollPanes不能强制转换为JLists。此外,单击表格而不是单元格本身时会发生这种情况。我真的不确定如何让一个动作监听器进入JScrollPane,当我点击单元格时,它会做出反应。有人有什么想法吗?鼠标事件会传递给您单击的组件 如果该组件没有鼠标侦听器,则事件将传递给父组件,直到找到具有鼠标侦听器的组件 默认情况下,Swing会将MouseStener添加到JList(例如,用

我一直在编写以下代码,但我无法双击JScrollPane。这是我的代码:


但是,使用此命令会引发一个错误:JScrollPanes不能强制转换为JLists。此外,单击表格而不是单元格本身时会发生这种情况。我真的不确定如何让一个动作监听器进入JScrollPane,当我点击单元格时,它会做出反应。有人有什么想法吗?

鼠标事件会传递给您单击的组件

如果该组件没有鼠标侦听器,则事件将传递给父组件,直到找到具有鼠标侦听器的组件

默认情况下,Swing会将MouseStener添加到JList(例如,用于处理单击列表中的项目),因此事件永远不会传递到滚动窗格

此外,单击表格而不是单元格本身时会发生这种情况

我不知道这是什么意思。什么是“表”和什么是“单元格”?听起来您是在向滚动窗格中添加JTable,而不是JList

在任何情况下,如果要在JList(已添加到滚动窗格的视口)上侦听鼠标事件,则需要将
鼠标侦听器添加到
JList
。因此,基本代码类似于:

JList list = new JList(...);
list.addMouseListener(...);
JScrollPane scrollPane = new JScrollPane( list );
frame.add( scrollPane );
现在,在您的
MouseListener
中,
MouseEvent
的源将是
JList

另外请注意,在侦听器中,您可以直接从JList获取所选项目的值:

JList list = (JList)mouseEvent.getSource();
System.out.println( list.getSelectedValue() );

请将您的代码以代码格式文本的形式发布,而不是以图像的形式发布。问问题时,我们不能将粘贴图片复制到我们的想法中可能的贴子副本。哦,等等。是的,我正在填充一个JTable。有没有一种方法可以用这段代码点击JScrollTable中的单元格?@Orion,别忘了点击复选标记“接受”答案,这样人们就知道问题已经解决了。