【发布时间】:2016-05-17 11:51:50
【问题描述】:
简单;我在JScrollPane 中有一个JPanel;
正如预期的那样; JScrollPane 默认侦听MouseWheelEvent,因此当滚轮旋转和光标悬停在JPanel 上时,滚动效果很好。
但是在那之后;我刚刚更新了JPanel 以便它实现MouseWheelListener,并为JPanel 本身添加了这个鼠标滚轮监听器。
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
if (e.isControlDown()) {
if (e.getWheelRotation() < 0) {
System.out.println("mouse wheel Up");
} else {
System.out.println("mouse wheel Down");
}
}
}
JPanel 响应此实现,当两者都发生时; Ctrl 被按下并且滚轮正在旋转并且光标悬停在JPanel 上。但是JScrollPane的默认行为却意外丢失了!!!
当我在光标悬停在JPanel 上时旋转滚轮时,JScrollPane 的滚动没有响应!!!
看来; MouseWheelListener 的这个实现打破了 JPanel 的默认值。
所以;如何在不破坏其默认实现的情况下为JPanel 实现MouseWheelListener?
【问题讨论】:
标签: java swing jpanel jscrollpane mousewheel